select count(*) into :str from tab ;
messagebox("test2",string(str))text1显示结果是DBA,text2显示结果是DBA,======================================
查询不成功,导致str中的值不变,检查数据库连接是否成功

解决方案 »

  1.   

    SQLCA.DBMS = "O84 Oracle8/8i (8.x.4+)"
    SQLCA.LogPass = 'rxz'
    SQLCA.ServerName = "rxz_db"
    SQLCA.LogId = "rxz"
    SQLCA.AutoCommit = False
    SQLCA.DBParm = ""
    connect;
    messagebox('db',string(sqlca.sqlcode))
    string rxz
    select count(*) into :rxz from tab;
    messagebox('text',string(rxz))db显示结果是0,text显示结果是DBA
      

  2.   

    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进行的时候数据库已然断开,但奇怪的是数据库即然断开了为什么后的游标还可以得到数据呢。这是为什么啊!!!!!