dintan 发表于 2011-03-19 08:43

select count(*)還回的筆數 為負數 大家知道怎麼回事嗎?

FUNCTION DAT_chkSql_getRows(V_work_id,V_tabname,V_sql_str)
      DEFINEV_tabname    CHAR(20),V_work_id    CHAR(20),
                V_sql_str    CHAR(1024),V_event      CHAR(256),
                V_rows       SMALLINT
      CALL DAT_taskiniFUN("資料檢查")
      CALL DAT_set_curr_group("T")    #---類別為task
      LET V_rows = 0
      LET V_sql_str = "SELECT COUNT(*) FROM ",V_tabname CLIPPED,
                        " WHERE ",V_sql_str CLIPPED
      CALL DAT_rec_event(0,V_work_id,V_sql_str)
      WHENEVER ERRORCONTINUE
      PREPAREV_sql_dat01 FROM V_sql_str
      IFSTATUS <> 0 THEN
            LET V_rows = -1 #--負數為語法問題
      LET V_event = "任務ID:",V_work_id CLIPPED,"中SQL語法錯誤。"
            CALL DAT_rec_event(-1,V_work_id,V_event)
            RETURN V_rows
      END IF
      WHENEVER ERRORCONTINUE
      DECLAREV_sql_exc01 CURSOR FOR V_sql_dat01
      FOREACHV_sql_exc01 INTO V_rows
            EXIT FOREACH
      END FOREACH
      WHENEVER ERRORSTOP
      LET V_event = "任務ID:",V_work_id CLIPPED,"中SQL語法檢查正確,",
                      "存在資料筆數為:",V_rows
      CALL DAT_rec_event(1,V_work_id,V_event)
      RETURN V_rows
    END FUNCTION
我在程式中執行
CALL DAT_chkSql_getRows("201103190827380002","cusmexh"," prdate between '201102' and '201102'")還回的結果為-1876

有知道的 還請指出什麽問題多謝!

dintan 发表于 2011-03-22 11:00

別沉下去自己頂:sleepy:

xxyyy 发表于 2011-03-24 09:18

V_rows       SMALLINT
这行错误,应该是 V_rows       integer

dintan 发表于 2011-03-24 13:14

回复 3# xxyyy


    多謝 啦!我修改一下 ,再觀察一下 試試。
页: [1]
查看完整版本: select count(*)還回的筆數 為負數 大家知道怎麼回事嗎?