Ok, after fighting this all weekend I finally figured out something. In this situation I had procedures on one delphi form that called procedures on another delphi form which in turn called procedures on yet another. The third form held my toraclesession and all the toracledatasets and toraclequeries used the toraclesession on the third form. Because they all used the same session I thought that they would all be in the same session but I kept having trouble getting all the procedures to see the database updates. Not only did I issue explicit commits, but I even tried disconnecting and connecting the toraclesession but only when I closed the application and came back, did everything sync up. Finally, I ended up putting all the toracledatasets and toraclequeries on the same form as the toraclesession and it worked. What was I doing wrong? This is about to kill me.