请各位看下下面的动态SQL语句为什么不能实现预期的效果

zhf_1021 2006-09-14 02:57:27
sqlstatement = "insert into AccidentExpectRec values( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"

prepare SQLSA from :_sqlstatement using mTrans_Target;
describe SQLSA into SQLDA;
declare my_cursor dynamic cursor for SQLSA;

int i_colNum, i_colCount
i_colCount = UpperBound(_data)
for i_colNum = 1 to i_colCount
SQLDA.SetDynamicParm( i_colNum, _data[i_colNum])
next

open dynamic my_cursor using descriptor SQLDA;
fetch my_cursor using descriptor SQLDA;

if mTrans_Target.SQLcode = 0 then
return True
else
MessageBox("插入数据", "错误")
return False
end if

------------------------------------------------
mTrans_Target是自定义事务
大家帮忙看看为什么一数据插入不到数据库中(sqlcode总是为-1)
...全文
286 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
AFIC 2006-09-25
  • 打赏
  • 举报
回复
那你在open Cursor 时在检查一下错误阿。
zzepc 2006-09-25
  • 打赏
  • 举报
回复
使用数据存储吧
rita187878 2006-09-18
  • 打赏
  • 举报
回复
路过...... --------------------- |水 是 生 命 之 源! |买 点 卡,拿 工 资 |http://www.p ay 3 6 5.com.cn ---------------------
zhf_1021 2006-09-18
  • 打赏
  • 举报
回复
我查看了错误信息:Cursor is not open,(游标没有打开),可我已经打开了啊
freedom2001 2006-09-15
  • 打赏
  • 举报
回复
你把sqlerrtext错误信息打message出来,这样估计你自己就能看出问题了
rightyeah 2006-09-15
  • 打赏
  • 举报
回复
我从来不做这种危险又麻烦的动作的,我都用dw完成的
zhf_1021 2006-09-14
  • 打赏
  • 举报
回复
是不是sql语句有错误?
zhf_1021 2006-09-14
  • 打赏
  • 举报
回复
SQLCode的值总是等于-1,commit根本不执行
ghost34 2006-09-14
  • 打赏
  • 举报
回复
.....
boolean lb_ret
open dynamic my_cursor using descriptor SQLDA;
fetch my_cursor using descriptor SQLDA;
if mTrans_Target.SQLcode = 0 then
commit;
lb_ret = true
else
rollback;
MessageBox("插入数据", "错误")
end if
close my_cursor;
return lb_ret
仰天长啸qsx 2006-09-14
  • 打赏
  • 举报
回复
将sqlca.autocommit=true,执行完了再false
zhf_1021 2006-09-14
  • 打赏
  • 举报
回复
没人会吗?
zhf_1021 2006-09-14
  • 打赏
  • 举报
回复
public function string getdynamicinsertclause (integer _colcount);string sqlstatement
sqlstatement = "insert into " + ms_TableName + " values( "
int i_colNum
for i_colNum = 1 to _colcount - 1
sqlstatement += "?,"
next

sqlstatement += "?)"

return sqlstatement
end function

public function boolean insertdatatotarget (any _data[], string _sqlstatement);

//string Sqlstatement
//sqlstatement = "insert into " + ms_TableName

prepare SQLSA from :_sqlstatement using mTrans_Target;
describe SQLSA into SQLDA;
declare my_cursor dynamic cursor for SQLSA;

int i_colNum, i_colCount
i_colCount = UpperBound(_data)
for i_colNum = 1 to i_colCount
SQLDA.SetDynamicParm( i_colNum, _data[i_colNum])
next

open dynamic my_cursor using descriptor SQLDA;
fetch my_cursor using descriptor SQLDA;

if mTrans_Target.SQLcode = 0 then
return True
else
MessageBox("插入数据", "错误")
return False
end if

//
end function

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧