我用 Delphi 6 和 Interbase6.5 写了一个程序,在进行程序分发时因客户端无法与Interbase 服务器连接上,只有将其连接控件由 BDE 换为 IBX (database 换为 IBdatabase,Table 换为 IBTable,Query 换为 IBQuery),在转换的过程中遇到以下问题,请高手指点。
  1、执行 IBQuery.ExecSQL ,数据库中的内容并没有发生相应的改变;
  2、DBlookupcombobox控件的下拉列表,首次进入时没有内容,必须点右边向下的键头,浏览一遍后,才能正常显示。
  3、IBTable.Filter:='dConveyTime=NUll';执行时会报错,而原来的Table.Filter:='dConveyTime=NUll';没有问题。(dConveyTime 类型为 TIMESTAMP)

解决方案 »

  1.   

    1.没有applyupdate;
    2.数据表指针问题;
    3.null
      

  2.   

    2、3已解决,多谢!1还未解决,问题如下:  IBQuery.ExecSQL 执行后数据库服务端的值未发生改变,即使关闭了 IBQuery 后再次打开,所执行的相应操作在客户端可以反应出来,但在数据库服务器端无变化,必须关闭 IBdatabase 后,相应的操作才会被提交到数据库。若在 执行 IBQuery.ExecSQL 后就执行   ibtransaction.Commit; 则相应的操作可提交到数据库,但与数据库的所有连接将被断开。
    请高手指点 IBdatabase 和 ibtransaction 的使用方法。
      

  3.   

    设置transaction properties为Read Committed,
    将ibtransaction.commit改为ibtransaction.CommitRetaining即可。