string rxz
改为
int rxz
试试

解决方案 »

  1.   

    有结果了,测试出来的结果是:SQLCA.SQLCODE=0而RXZ=0而我的数据库中数据是432
      

  2.   

    我觉得是数据库连接问题,而不是类型是问题.有没有什么连接数据库的标准格式啊.!PB8连ORACLE7.3的
      

  3.   

    1 看看db profile里连接是否成功
    2 在不同的scheme下,select count(*) from tab返回的结果是不同的,在rxz模式下,
      可能没有数据库对象,

      我的数据库中数据是432
     ==========================
      你是在另一个模式下查询的。
      

  4.   

    db profile 中是成功的,而且也试了在DATABASE中select count(*) from tab;是有数据的.我现在就是怀疑是数据库连接方面有问题.我用同样的方法在PB6.5中试过是没问题的.
      

  5.   

    SQLCA.DBMS = 'O84 Oracle8/8i (8.x.4+)'
    SQLCA.LogId = 'futurepos'
    SQLCA.ServerName = 'mcht_db'
    SQLCA.LogPass = 'futurepos'
    SQLCA.AutoCommit = False
    SQLCA.DBParm = 'async=1,DisibleBind=1'    connect using sqlca;
    messagebox('db',string(sqlca.sqlcode))
    long rxz
    select count(*) into :rxz from TAB using sqlca;
    messagebox('db1',string(sqlca.sqlcode))
    messagebox('text',string(rxz))
    declare  know_l cursor for
    select count(*) from tab  using sqlca;
    open know_l;fetch know_l into :rxz;
    messagebox('text1',string(rxz))
    close know_l;
    又做了新的测试,   DB的结果是0,DB1结果是-1,TEXT的结果是0,TEXT1的结果是487。
    那就是说,在连完数据库的那一下数据库是连上的,第一个SELECT进行的时候数据库已然断开,但奇怪的是数据库即然断开了为什么后的游标还可以得到数据呢。这是为什么啊!!!!!