当前位置: 代码迷 >> PB >> ,动态SQL语句来解决列名为变量的疑惑
  详细解决方案

,动态SQL语句来解决列名为变量的疑惑

热度:68   发布时间:2016-04-29 09:51:12.0
求助,动态SQL语句来解决列名为变量的疑惑
我的目的是列名需要用变量来替换
得到结果,
//列名是变动的,需要使用动态SQL语句
ls_rq ='rq'+string(i)
ls_sql = " Select sum(bcsc) From tggpq Where substr(ggdm,4,2) ='"+ ls_rq +" ' And qyklj = '"+ ls_qyklj +" ' And tfyd = '"+ ls_tfyd +" ' and '"+ ls_rq +" '='1' " ;
//游标声明 
Declare lcur_yysj Cursor For ls_sql;
//游标打开 
Open lcur_yysj;
If sqlca.SQLCode <> 0 Then
MessageBox("数据库错误!",sqlca.SQLErrText,exclamation!)
Return
End If
//提取
Fetch lcur_yysj Into :ll_yysj;
Close lcur_yysj;
可以pb编译无法通过,报错如下:
 Database C0038: SQLSTATE = S0002
[Sybase][ODBC Driver][Adaptive Server Anywhere]表或视图未找到: 未找到过程 'ls_sql'

------解决方案--------------------
messgaebox('',ls_sql)出来看看!
------解决方案--------------------
探讨
我知道了,原因是
Declare lcur_yysj Cursor For ls_sql;


ls_sql;前面要加';'
  相关解决方案