请帮忙看看上面的代码为什么不对

请帮忙看看下面的代码为什么不对?
在表all_col_comments存放了所有当前用户能够访问的表的表名(Table_name)列名(Column_Name),我想用下面的代码查看哪些表的列中有“1”这个数字的记录,不知下面的写法为什么不对?


this.enabled=false
String lsSQL
String tName
String CName
int i

declare cursor1 CURSOR for Select (owner||'.'||table_name) table_name,column_name from all_col_comments;
open cursor1;
string mySql
int iRes
do while (sqlca.sqlcode=0)
iRes=-1
yield()
fetch cursor1 into :TName, :CName;
mySql="Select Count(*) from " + TName +" Where " + CName +"=1;"
messagebox("", mySQl)

declare c1 dynamic cursor for sqlsa;
prepare sqlsa from :mySql;
open dynamic c1;  // using; :TName, :CName;
fetch c1 into :iRes;
close c1;

if iRes>=0 then
i=dw_1.InsertRow(0)
dw_1.setitem(i,1,TName)
dw_1.setitem(i,2,CName)
end if
loop
close cursor1;
this.enabled=true
MessageBox(string(i),string(i))


messagebox("", mySQl)
这一句出来的语句在SQL环境下是可以执行的

------解决思路----------------------
那就写存储过程了
------解决思路----------------------
找管理员加上啊
------解决思路----------------------
open dynamic c1; // using; :TName, :CName;
fetch c1 into :iRes;
close c1;

这块我下午说错了不好意思 是应该检测sqlca.sqlcode 你看看fetch后sqlca.sqlcode是多少

如果不是0 看看报错是什么 贴出来

--
mySql="Select Count(*) from " + TName +" Where " + CName +"=1" //去掉;试试 

------解决思路----------------------
open dynamic c1; 
Messagebox("",sqlca.sqlerrtext)
看看错误信息
------解决思路----------------------
引用:
啊,原来竟然是SQL语句后面不能带“;”号所致!


......................

看了几遍,还真没发现。