当前位置: 代码迷 >> PB >> select Error:sqlstate=3700 [Microsoft][ODBC Sql Server Driver][Sql Server],该如何处理
  详细解决方案

select Error:sqlstate=3700 [Microsoft][ODBC Sql Server Driver][Sql Server],该如何处理

热度:202   发布时间:2016-04-29 10:09:34.0
select Error:sqlstate=3700 [Microsoft][ODBC Sql Server Driver][Sql Server]
select Error:sqlstate=3700 [Microsoft][ODBC Sql Server Driver][Sql Server]第一行:‘:’附近有语法错误。

p_name=trim(ddlb_1.text)

NewSyn='SELECT * '+&
  'FROM STP '+&
  'where ProName=:p_name'

dw_1.SetSQLSelect(NewSyn)
messagebox("数据窗口的sql语句",NewSyn)
dw_1.Retrieve()

怎么老出3700的错,怎么回事,求救!!!

------解决方案--------------------
拼接SQL 有误, 把它写成这样试一下:

NewSyn="SELECT * FROM STP where ProName='"+p_name+"'"

另外, setsqlselect() 函数使用的拼接的newsyn 中的select 的字段要确保和原来DW 对象的列要对应.
不然 setsqlselect() 将返回 -1
------解决方案--------------------
直接把p_name的值写到newsyn里
NewSyn="SELECT * FROM STP where ProName='" + p_name +"'"

------解决方案--------------------
p_name=trim(ddlb_1.text)

NewSyn="SELECT * FROM STP where ProName='"+p_name+"'"

int li_rtn
li_rtn = dw_1.SetSQLSelect(NewSyn)
if li_rtn=-1 then
messagebox("数据窗口的sql语句",NewSyn)
end if
dw_1.settransobject(sqlca)
dw_1.Retrieve()

------解决方案--------------------
NewSyn='SELECT * '+&
'FROM STP '+&
'where ProName=:p_name'
這裏出問題啊,p_name是個變量怎麼能這樣子寫呢

NewSyn='SELECT * '+&
'FROM STP '+&
'where ProName=“+‘p_name'
  相关解决方案