我们正在处理基于Team Developer 2005.1的遗留代码
有一个类似
的查询 !!CB!! 70
Set sSqlCommand = '
SELECT name, value
INTO :sName, :sValue
FROM av_system_settings
WHERE name LIKE \'Company_\%\''
If NOT SqlPrepareAndExecute( hSqlMain, sSqlCommand )
Return FALSE
Loop
If SqlFetchNext( hSqlMain, nFetch )
...
此处,变量:sName, :sValue
是字符串,但它始终具有空值,尽管记录已通过SqlFetchNext
正确循环
其他地方的into变量都很好。只是不在这里工作。
这个已经耗尽了大脑......任何想法?伙计们:)
答案 0 :(得分:1)
如果sValue变量需要保存Long数据,请查看SqlSetLongBindDatatype()函数。
检查sql句柄hsqlMain的值,如果它有一个正值或一个意味着句柄连接正确。除此以外 如果句柄值为null或零,则表示句柄未连接。
尝试使用SqlFetchRow(hsqlMain,nRow,nFetch)并将nRow的值递增1,直到函数返回false或nFetch的值变为FETCH_EOF。
Set nRow = 0
While (TRUE)
If not SqlFetchRow( hsqlMain, nRow, nFetch )
Break
Set nRow = nRow + 1
答案 1 :(得分:0)
在SqlFetchNext之后检查nFetch以确保找到记录。
如果nFetch = FETCH_Ok,则找到记录。 因此,尝试在SqlFetchNext之前调用SqlVarSetup(hSqlMain),因此into vars具有上下文。 同时尝试限定进入vars,例如:hWndForm.frmTest.sName。
如果nFetch = FETCH_EOF,则未找到任何记录。