新做一系统,delphi6+ado+sql server2000 运行一星期发现以下两问题:
(以下故障都只出现一次,请问是什么原因造成?用什么办法可以避免?)1:其中有一条记录添加成功,但当时查询不到,过了一个小时又自动出现了.2:其中有一个操作显示'保存成功',但两个表中却没有反应,该添加的没有,该删除的没有删除,代码如下
try
DM.ADOCnctn.BeginTrans ; //其中一个表添加记录,一个表删除记录
.
.
. DM.ADOCnctn.CommitTrans ;
showmessage('保存成功');
except
DM.ADOCnctn.RollbackTrans ;
showmessage('保存失败');
end;
(以下故障都只出现一次,请问是什么原因造成?用什么办法可以避免?)1:其中有一条记录添加成功,但当时查询不到,过了一个小时又自动出现了.2:其中有一个操作显示'保存成功',但两个表中却没有反应,该添加的没有,该删除的没有删除,代码如下
try
DM.ADOCnctn.BeginTrans ; //其中一个表添加记录,一个表删除记录
.
.
. DM.ADOCnctn.CommitTrans ;
showmessage('保存成功');
except
DM.ADOCnctn.RollbackTrans ;
showmessage('保存失败');
end;
解决方案 »
- 高手请进,关于3DVIA Composer player的ActiveX控件,
- 小数问题
- delphi存在,为什么这么少人用bcb??
- 在配置AOD连接的ConnectionString属性时遇到的问题! 大伙帮帮忙
- 求助: 请高手帮忙写一个函数, 我总是写不好!(pascal 基础问题)
- 怎么实现背景播放
- treeview的用法.帮忙告诉我.
- 请问如果调整DBChart的一个Series的类型
- 有关QReport的问题
- 本人现在正在准备开发一个两岸三地的生产管理系统,因为是初次用Delphi开发,所以。。。
- adotable设了master/detail 如何取消,我要对adotable使用filter 100分
- 数据删除的问题?
var
SQL_insert:WideString;
begin//
try
DM.ADOCnctn.BeginTrans ;
//保存记录jilu
SQL_insert:='insert into jilu (xuhao,huodan,hetong,tihuofangshi,tihuoren,jinchu,kuwei,riqi,shijian,riqi1,riqi2,shijian1,shijian2,chehao,kehu,huowu,zhongliang,zongzhong,pizhong,jingzhong,jianshu,tongzongzhong,tongleibie,tongdanzhong,caozuo) ';
SQL_insert:=SQL_insert+'values (:xuhao,:huodan,:hetong,:tihuofangshi,:tihuoren,:jinchu,:kuwei,:riqi,:shijian,:riqi1,:riqi2,:shijian1,:shijian2,:chehao,:kehu,:huowu,:zhongliang,:zongzhong,:pizhong,:jingzhong,:jianshu,:tongzongzhong,:tongleibie,:tongdanzhong,:caozuo)';
DM.ADOCmnd.CommandText:=SQL_insert;
DM.ADOCmnd.Parameters.ParamByName ('xuhao').Value :=Edt_xuhao.Text ;
DM.ADOCmnd.Parameters.ParamByName ('huodan').Value :=CmbBx_huodan.Text ;
DM.ADOCmnd.Parameters.ParamByName ('hetong').Value :=CmbBx_hetong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tihuofangshi').Value :=CmbBx_tihuofangshi.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tihuoren').Value :=CmbBx_tihuoren.Text ;
DM.ADOCmnd.Parameters.ParamByName ('jinchu').Value :=Edt_jinchu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('kuwei').Value :=CmbBx_kuwei.Text ;
DM.ADOCmnd.Parameters.ParamByName ('riqi').Value :=mdate;
DM.ADOCmnd.Parameters.ParamByName ('shijian').Value :=mtime;
if huicheng=false then begin
DM.ADOCmnd.Parameters.ParamByName ('riqi1').Value :=mdate;
DM.ADOCmnd.Parameters.ParamByName ('riqi2').Value :='';
DM.ADOCmnd.Parameters.ParamByName ('shijian1').Value :=mtime;
DM.ADOCmnd.Parameters.ParamByName ('shijian2').Value :='';
end
else begin
DM.ADOCmnd.Parameters.ParamByName ('riqi1').Value :=riqi_weihui;
DM.ADOCmnd.Parameters.ParamByName ('riqi2').Value :=mdate;
DM.ADOCmnd.Parameters.ParamByName ('shijian1').Value :=shijian_weihui;
DM.ADOCmnd.Parameters.ParamByName ('shijian2').Value :=mtime;
end;
DM.ADOCmnd.Parameters.ParamByName ('chehao').Value :=CmbBx_chehao.Text ;
DM.ADOCmnd.Parameters.ParamByName ('kehu').Value :=CmbBx_kehu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('huowu').Value :=CmbBx_huowu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('zhongliang').Value :=floattostr(mem_zhongliang);
DM.ADOCmnd.Parameters.ParamByName ('zongzhong').Value :=Edt_zongzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('pizhong').Value :=Edt_pizhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('jingzhong').Value :=Edt_jingzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('jianshu').Value :=Edt_jianshu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongzongzhong').Value :=Edt_tongzongzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongleibie').Value :=Cmbbx_tongleibie.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongdanzhong').Value :=Edt_tongdanzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('caozuo').Value :=Edt_CaoZuo.Text ; DM.ADOCmnd.Execute ; if huicheng=false then begin
//ZzyDM.qry_weihui.sql.add('insert into weihui (huodan,hetong,tihuofangshi,tihuoren,kuwei,riqi,riqi1,shijian1,chehao,kehu,huowu,zhongliang,jianshu,tongzongzhong,tongleibie,tongdanzhong,caozuo)');
SQL_insert:='insert into weihui (huodan,hetong,tihuofangshi,tihuoren,kuwei,riqi1,shijian1,chehao,kehu,huowu,zhongliang,jianshu,tongzongzhong,tongleibie,tongdanzhong,caozuo) ';
SQL_insert:=SQL_insert+'values (:huodan,:hetong,:tihuofangshi,:tihuoren,:kuwei,:riqi1,:shijian1,:chehao,:kehu,:huowu,:zhongliang,:jianshu,:tongzongzhong,:tongleibie,:tongdanzhong,:caozuo)';
DM.ADOCmnd.CommandText:=SQL_insert;
DM.ADOCmnd.Parameters.ParamByName ('huodan').Value :=CmbBx_huodan.Text ;
DM.ADOCmnd.Parameters.ParamByName ('hetong').Value :=CmbBx_hetong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tihuofangshi').Value :=CmbBx_tihuofangshi.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tihuoren').Value :=CmbBx_tihuoren.Text ;
DM.ADOCmnd.Parameters.ParamByName ('kuwei').Value :=CmbBx_kuwei.Text ;
DM.ADOCmnd.Parameters.ParamByName ('riqi1').Value :=mdate;
DM.ADOCmnd.Parameters.ParamByName ('shijian1').Value :=mtime;
DM.ADOCmnd.Parameters.ParamByName ('chehao').Value :=CmbBx_chehao.Text ;
DM.ADOCmnd.Parameters.ParamByName ('kehu').Value :=CmbBx_kehu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('huowu').Value :=CmbBx_huowu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('zhongliang').Value :=floattostr(mem_zhongliang);
DM.ADOCmnd.Parameters.ParamByName ('jianshu').Value :=Edt_jianshu.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongzongzhong').Value :=Edt_tongzongzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongleibie').Value :=CmbBx_tongleibie.Text ;
DM.ADOCmnd.Parameters.ParamByName ('tongdanzhong').Value :=Edt_tongdanzhong.Text ;
DM.ADOCmnd.Parameters.ParamByName ('caozuo').Value :=Edt_caozuo.Text ; DM.ADOCmnd.Execute ;
end
else begin
DM.ADOCmnd.CommandText:='delete from weihui where id=:id';
DM.ADOCmnd.Parameters.ParamByName ('id').Value :=ID_WeiHui;
DM.ADOCmnd.Execute ;
end;DM.ADOCnctn.CommitTrans ;
showmessage('保存成功');
except
DM.ADOCnctn.RollbackTrans ;
showmessage('保存失败');
end;////////////////////////////////////
//读取打印磅单资料
P_HuoDan:=CmbBx_HuoDan.Text ;
P_HeTong:=CmbBx_HeTong.Text ;
P_TiHuoFangShi:=CmbBx_TiHuoFangShi.Text ;
P_KuWei:=CmbBx_KuWei.Text ;
P_TiHuoRen:=CmbBx_TiHuoRen.Text ;
P_JianShu:=Edt_JianShu.Text ;
P_XuHao:=Edt_XuHao.Text ;
if huicheng=false then begin
P_RiQi1:=mdate;
P_RiQi2:='';
P_ShiJian1:=mtime;
P_ShiJian2:='';
end
else begin
P_RiQi1:=riqi_weihui;
P_RiQi2:=mdate;
P_ShiJian1:=shijian_weihui;
P_ShiJian2:=mtime;
end;P_CheHao:=CmbBx_CheHao.Text ;
P_KeHu:=CmbBx_KeHu.Text ;
P_HuoWu:=CmbBx_HuoWu.Text ;
P_ZongZhong:=Edt_ZongZhong.Text ;
P_PiZhong:=Edt_PiZhong.Text;
P_TongZongZhong:=Edt_TongZongZhong.Text ;
P_JingZhong:=Edt_JingZhong.Text ;
P_Caozuo:=Edt_CaoZuo.Text ;////////////////////////////////////
BtBtn_Cancel.Click ;end;
改成DM.ADOCmnd.Exesql ;试试另外你说的看不见结果是从哪里看的?
我是从DBGrideh中看的.
我做了一个改动:
adodataset1.active:=false;
adodataset1.active:=true;
改为
adodataset1.close;
adodataset1.open;
然后发给客户使用,希望不会再出现上面的情况。
现在开始给分,多谢各位!