我现在接了一个项目DELPHI6的项目。要求必须用DELPHI6的BDE方式连ORACLE8i的数据库。我现在BDE中的ORACLE驱动版本是5.2.0.2现在我用BDE连ORACLE数据库可以成功。用QUEYR只读访问数据也可以。但是当我要可写方式打开表时,就是把QUEYR的RequestLive设为true打开表时,就报BDE错误“Table not found”。用TABLE打开表也是报BDE错误“Table not found”。例如:
query1.close;
query1.sql.text:='select field1 from table1';
query1.RequestLive:=true;
query1.open;
就立刻报错。
如果去掉query1.RequestLive:=true;这句就可以访问表。
现在搞的我想修改数据必须在QUERY中发SQL语句才可以。但是有的地方必须要在界面上就可以修改数据。所以没办法,必须要解决掉这个问题才行。
所以请教大家,请大家帮忙解决问题。如果要下载补丁,请告诉我下载的地址。我不胜感激。

解决方案 »

  1.   


    试试把sql中表名称的大小写调整一下,同数据库中一致.
      

  2.   

    不知道这样行不行:
    query1.RequestLive:=false;
    query1.close;
    query1.sql.text:='select field1 from table1';
    query1.RequestLive:=true;
    query1.open;
      

  3.   

    不会出现错误的估计是你的ORACLE设置出现了问题
      

  4.   

    query1.RequestLive:=false;
    query1.close;
    query1.sql.text:='SELECT FIELD1 FROM TABLE1';
    query1.RequestLive:=true;
    query1.open;
    应该不会有问题了,我的问题是这样解决的
      

  5.   

    SQL语句里面可能用了Oracle自身的函数。或者SQL语句里面用了Order BY等限制的语句。
    Delphi用LocalSQL,有很多限制。
      

  6.   

    各位好,问题找到了。是因为大小写的问题。如果是只读的方式打开表,不区分大小写就可以。如果是可写的方式打开表,就区分大小写了。因为只读的时候不区分大小写,所以我以为ORACLE是不区分大小写的呢。感谢大家的帮助。