想数据库中执行插入一条记录,看看哪里错了。

YYBYYB1984 2008-02-26 06:37:46
// messagebox(string(sqlca.sqlcode),sqlca.sqlerrtext)
SendTimeName=datetime(today(),now())
SubTimeName=datetime(today(),now())
DestAddrName=sle_2.text
SM_ContentName=dw_result.getitemstring(dw_result.getRow(),'tslrms')
CreatorIDName='kf_'+string(today())+SM_ContentName

transaction trans_sqltest //(先定义trans_sqltest)
trans_sqltest=create transaction
//trans_sqltest.DBMS = "OLE DB"
//trans_sqltest.LogPass = 'Infox1Eies2Sps3Was4!'
//trans_sqltest.LogId = "sa"
//trans_sqltest.AutoCommit = False
//trans_sqltest.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='138.0.0.53'"
// Profile test1
trans_sqltest.DBMS = "ODBC"
trans_sqltest.AutoCommit = true
trans_sqltest.DBParm = "ConnectString='DSN=testdx;UID=sa;PWD=Infox'"

connect using trans_sqltest;
if cbx_1.Checked=true then

INSERT INTO tbl_SMSendTask
( CreatorID,SmSendedNum, OperationType, SendType, OrgAddr,
DestAddr, SM_Content, SendTime, NeedStateReport, ServiceID, FeeType, FeeCode,
SMType, MessageID, DestAddrType, SubTime, TaskStatus, SendLevel, SendState, TryTimes
)
values
(:CreatorIDName,0,'was',1,'106573010206',:DestAddrName,:SM_ContentName,:SendTimeName
,1,'TGD1119901','01','000000',0,'',0,:SubTimeName,0,0,0,3
) using trans_sqltest;

commit;
end if

这段代码执行后数据库中没有变化!
我这里重新定义了一个trans_sqltest,因为默认的数据库是另外一个。
请大家帮分析一下!
...全文
82 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlf19810306 2008-02-27
  • 打赏
  • 举报
回复
如果执行成功还是没有更新的话,检查一下数据库是否出发了相应的trigger
fengjzh1977 2008-02-27
  • 打赏
  • 举报
回复
涉及表修改的语句,执行后,一定要判断一下是否执行成功。如果不成功,使用rollback回滚,但也不要把rollback加到messagebox的后面
dangerous123 2008-02-26
  • 打赏
  • 举报
回复
if trans_sqltest.sqlcode = 0 then
messagebox( ' ', '成功! ')
commit;
else
messagebox( ' ', trans_sqltest.sqlerrtext)
rollback;
end if
这样改下
dangerous123 2008-02-26
  • 打赏
  • 举报
回复
内嵌sql语句的执行情况,最好检查一下返回值,确保语句成功执。。
YYBYYB1984 2008-02-26
  • 打赏
  • 举报
回复
楼上的# jlwei888。
测试结果为成功,但依然没有更新到数据库。
怎么搞的?
jlwei888 2008-02-26
  • 打赏
  • 举报
回复
connect using trans_sqltest;
if trans_sqltest.sqlcode <>0 then
//没连上
return
end if


if cbx_1.Checked=true then

INSERT INTO tbl_SMSendTask
( CreatorID,SmSendedNum, OperationType, SendType, OrgAddr,
DestAddr, SM_Content, SendTime, NeedStateReport, ServiceID, FeeType, FeeCode,
SMType, MessageID, DestAddrType, SubTime, TaskStatus, SendLevel, SendState, TryTimes
)
values
(:CreatorIDName,0,'was',1,'106573010206',:DestAddrName,:SM_ContentName,:SendTimeName
,1,'TGD1119901','01','000000',0,'',0,:SubTimeName,0,0,0,3
) using trans_sqltest;
if trans_sqltest.sqlcode <>0 then
messagebox('','成功!')
commit;
else
messagebox('', trans_sqltest.sqlerrtext)
rollback;
end if
end if

-狙击手- 2008-02-26
  • 打赏
  • 举报
回复
请检测一下trans_sqltest的错误文本
应该是有错误没有提交 

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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