这条动态sql语句为何无法成功执行
ls_sql="select md5info.mingwen into '"+b+"' from md5info where md5info.md5jm='“+sle_1.text+”'"
EXECUTE IMMEDIATE:ls_sql Using sqlca;
b是变量,md5info.md5jm中有一条符合条件的,但b无法获得返回值。
[解决办法]
ls_sql="select md5info.mingwen into "+b+" from md5info where md5info.md5jm='“+sle_1.text+”'"
EXECUTE IMMEDIATE:ls_sql Using sqlca;
b的前后表加引号就OK,
哈哈,轻松得100分,
[解决办法]
b的前后不要加引号就OK
[解决办法]
b前面加一个@
ls_sql="select md5info.mingwen into @"+b+" from md5info where md5info.md5jm='“+sle_1.text+”'"
EXECUTE IMMEDIATE:ls_sql Using sqlca;
[解决办法]
最后要不要加一个 ; 号。
你后台数据库是什么? oracle还是sql?
[解决办法]
试试这样写(加了个冒号):
ls_sql="select md5info.mingwen into :"+b+" from md5info where md5info.md5jm='“+sle_1.text+”'"
EXECUTE IMMEDIATE:ls_sql Using sqlca;
[解决办法]
lZ 再查一下PB 的帮助,嵌入式SQL 不是这么写的,试一下:
select mingwen into :b from md5info where md5jm = :sle_1.text using sqlca;
[解决办法]
变量不能是动态的,
动态的话就是SQL里的select into 建立表了
[解决办法]
或者是你看一下游标(或动态游标)
[解决办法]
[解决办法]
对的,Dynamic SQL Format 3 或Dynamic SQL Format 4
[解决办法]
[解决办法]
动态sql,不能使用into变量来取值
动态sql的取值,可以这样来:
string ls_sql,ls_mingwen
ls_sql = select md5info.mingwen from md5info where md5info.md5jm='“+sle_1.text+”'"
prepare sqlsa from :ls_sql;
describe sqlsa into sqlda;
declare myprc dynamic procedure for sqlsa;
execute dynamic myprc using descriptor sqlda;
fetch myprc using descriptor sqlda;
close myprc;
mingwen = getdynamicstring(sqlda,1)