在PB中撰寫了一個列資料校驗的函式:
int li_count
string sql_txt
if isnull(fs_to_check) or trim(fs_to_check) = "" then return true
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
string ls_var
sql_txt = "SELECT " + fs_what_column + " FROM "+ fs_from_table + " where "+ fs_what_column +" = '"+fs_to_check+"' "+fs_other_condition
PREPARE SQLSA FROM :sql_txt ;
OPEN DYNAMIC my_cursor;
FETCH my_cursor INTO :ls_var;
CLOSE my_cursor ;
if len(ls_var) > 0 then
return true
else
return false
end if
問題是:在源程式運行時執行結果變數ls_var有值,但編譯成PBD運行,同一個資料取出的變數ls_var就是空,為什么,請大蝦們指教。
uj5u.com熱心網友回復:
游標不用回圈的嗎?uj5u.com熱心網友回復:
在這個函式中只執行一次,是將查找的列、表名和查找的值作為引數傳入,查看在表中是否存在。uj5u.com熱心網友回復:
那根本用不著游標uj5u.com熱心網友回復:
少了什么 DLL 吧uj5u.com熱心網友回復:
同意樓上的觀點uj5u.com熱心網友回復:
FETCH my_cursor INTO :ls_var;在這句后面加個語名
if sqlca.sqlcode <> 0 then
f_stop(sqlca.sqlerrtext)
end if
看一下是什么問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107757.html
標籤:數據庫相關
