编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

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

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

我在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

TOP

要用這個動態語句。
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

PREPARE SQLSA FROM :mysql ;

OPEN DYNAMIC my_cursor ;

FETCH my_cursor INTO : num;

CLOSE my_cursor ;

TOP

:V1在""内被作为字符串看待.绝对不符合SQL语法,所以一定是错的,
对于PB来说,你这个简单的SELECT语句完全可以直接执行,不必那么麻烦.

TOP

select count(*) into :v1 from ren; //sql语句可在PB脚本中执行啊

If sqlca.sqlcode <> 0 Then
rollback;
MessageBox("错误", sqlca.sqlcode)
else
commit;
MessageBox("成功", sqlca.sqlcode)
End If

TOP

晕 啊,为什么还要 rollabck 和 commit 直接写不就可以了吗

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

TOP

发新话题