注册 登录
编程论坛 PowerBuilder

看看pb中sql为什么没有执行?

john816 发布于 2007-04-23 23:34, 1839 次点击
我在pb中需要执行sql语句,但程序就是不执行,请各位帮忙看看什么原因?
String ls_sql
dec {2} v1

ls_sql="select count(*) into :v1 from ren"
execute immediate :ls_sql;
If sqlca.sqlcode <> 0 Then
rollback;
MessageBox("错误", sqlca.sqlcode);
else
commit;
MessageBox("成功", sqlca.sqlcode);
End If
如果把into :v1去掉,则执行成功,否则错误,问题在于sqlca.sqlcode都是0
4 回复
#2
路過2007-04-26 08:42
要用這個動態語句。
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

PREPARE SQLSA FROM :mysql ;

OPEN DYNAMIC my_cursor ;

FETCH my_cursor INTO : num;

CLOSE my_cursor ;

#3
黎明前的黑暗2007-06-07 15:57
:V1在""内被作为字符串看待.绝对不符合SQL语法,所以一定是错的,
对于PB来说,你这个简单的SELECT语句完全可以直接执行,不必那么麻烦.
#4
fyh2007-06-09 21:46
select count(*) into :v1 from ren; //sql语句可在PB脚本中执行啊

If sqlca.sqlcode <> 0 Then
rollback;
MessageBox("错误", sqlca.sqlcode)
else
commit;
MessageBox("成功", sqlca.sqlcode)
End If
#5
langzping2007-06-13 21:34
晕 啊,为什么还要 rollabck 和 commit 直接写不就可以了吗

Long ll_count
SELECT count(*) INTO :ll_count FROM ren;
If ll_count > 0 Then
MessageBox('','找到资料',exclamation)
Else
没有
End If
1