string oldsql,newsql
string mygetzdid,mygetcon,mygetvalue,mycolumnname,mytablename
int i,stringlen
select trim(columnname) into :mycolumnname from query;
mytablename = parent.ddplb_tablename.text
oldsql=parent.dw_result.getsqlselect()
newsql=''
if parent.dw_condition.rowcount() <> 0 then
parent.dw_result.retrieve()
oldsql=parent.dw_result.getsqlselect()
for i=1 to parent.dw_condition.rowcount()
mygetzdid = trim(parent.dw_condition.getitemstring(i,"columnname"))
mygetcon = trim(parent.dw_condition.getitemstring(i,"controlname"))
mygetvalue = trim(parent.dw_condition.getitemstring(i,"columnvalue"))
newsql = newsql + '' + "(" + ' ' + '"' + string(mytableid)+ '"' + "." + &
+ '"' + string(mygetzdid) + '"' + string(mygetcon) + '"' + string(mygetvalue) + &
+'"'+")" + '' + 'and'
end for
newsql=oldsql+''+' where '+newsql
stringlen=len(newsql)
stringlen=stringlen - 5
newsql=trim(left(newsql,stringlen))
parent.dw_result.setsqlselect(newsql)
parent.dw_result.retrieve()
else
messagebox("提醒","請你設定查詢條件!")
end if
運行的時候出現了這樣的錯誤:
select error:sqlstate = s1000
[oracle][odbc][ora]ora-00933 sql命令未正確結束
誰能幫我改改哦!
uj5u.com熱心網友回復:
有兩種可能:1、本身組裝SQL陳述句語法有問題
2、代入SQL陳述句的變數含有非法字符,一般是含有"'"
uj5u.com熱心網友回復:
end for 改成 next在setsqlselect(newsql)前面用messagebox彈出來newsql,看看陳述句有沒有問題 也可以設斷點除錯一下
uj5u.com熱心網友回復:
messagebox彈出來的newsql資訊,(*是我用來代替那些欄位用的!)select * where * and * and
結尾那里多了一個and哦,是不是問題所在!
應該怎么去掉后面的and呢!
uj5u.com熱心網友回復:
stringlen=stringlen - 5不能去掉后面的 ++and的哦!不知道為什么?uj5u.com熱心網友回復:
有點難度哦轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/115086.html
標籤:數據庫相關
