高手请进,来者有份,关于事务!!!!

aehousmantao 2004-08-26 09:57:08

问题是这样的。
我的项目中有一部分是数据录入。要一次性录入30几个表,而且是一次录入
每个表至少插入1~10条数据。我用了事务。
但是,我在我的电脑的上运行没有任何任何问题。在客户的机上就把数据录入不进去,
老是出问题。
我的事务是这样的:
if form1.ADOConnection1.InTransaction then
begin
form1.ADOConnection1.CommitTrans;
end;
form1.ADOConnection1.BeginTrans;

try


我得数据插入几乎都是这样的模式

i:=strtoint(combobox27.Text);
for j:=0 to i do
begin
myado.Insert;
myado.FieldByName('tdbh').AsString:=key;
myado.FieldByName('tyxm').AsString:=(scrollbox2.FindChildControl('myedit_name'+inttostr(j)) as tedit).Text;
myado.FieldByName('tyxb').AsString:=(scrollbox2.FindChildControl('myCombobox_sex'+inttostr(j)) as tcombobox).Text;
myado.FieldByName('tynl').AsString:=(scrollbox2.FindChildControl('mycombobox_age'+inttostr(j)) as tcombobox).Text;
myado.FieldByName('shfzhh').AsString:=(scrollbox2.FindChildControl('myedit_shenfenzheng'+inttostr(j)) as tedit).Text;
myado.FieldByName('lxfsh').AsString:=(scrollbox2.FindChildControl('myedit_lianxifangshi'+inttostr(j)) as tedit).Text;
myado.FieldByName('tylx').AsString:=(scrollbox2.FindChildControl('mycombobox_category'+inttostr(j)) as tcombobox).Text;
myado.FieldByName('bzh').AsString:=(scrollbox2.FindChildControl('mycombobox_beizhu'+inttostr(j)) as tcombobox).Text;
myado.Post;
end;




form1.ADOConnection1.CommitTrans;

showmessage('编号:'+key+' 的团队信息已经成功录入!');
except
messagedlg('数据导入出错,请确认数据库是否正常链接!'+#13+#13+'严重错误...容错类型:0013',mtWarning,[mbOk],0);
form1.ADOConnection1.RollbackTrans;
end;


请大家帮帮我把。
现在在客户的机子上录入不了数据。啊
老是执行这句:messagedlg('数据导入出错,请确认数据库是否正常链接!'+#13+#13+'严重错误...容错类型:0013',mtWarning,[mbOk],0);





...全文
178 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmily1688 2004-08-28
  • 打赏
  • 举报
回复
up
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复

谢谢大家。你们等一下,我今天下午就去那边把错误类型搞出来
晚上我们好好研究一下吧。
谢谢你们了
晚上我们在来看看吧。
fengron 2004-08-27
  • 打赏
  • 举报
回复
直接抛出异常来看看,不要显示你自己的消息,如wanwangzhiwang(万王之王)说的,大家才能知道具体的错误。
eastliangliang 2004-08-27
  • 打赏
  • 举报
回复
我在一个事务中一次性导入两千多条邮编区号都没有问题。
一次性插入,我有的表一次要写入50多个字段,不会有问题的。
wanwangzhiwang 2004-08-27
  • 打赏
  • 举报
回复
在这个地方改一下,把出错的信息抛出来看看到底是什么错误。
except
messagedlg('数据导入出错,请确认数据库是否正常链接!'+#13+#13+'严重错误...容错类型:0013',mtWarning,[mbOk],0);
form1.ADOConnection1.RollbackTrans;
end;


on E:Exception do
begin
ShowMessage(E.Message);
form1.ADOConnection1.RollbackTrans;
end;
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复

情况是这样的。我的软件在我这个可以正常运行。而且单步运行也没有问题。
我刚刚试过。
但是到对方那里。就老是出执行except里面的语句。
你们有没有觉得是一次性输入过多的数据,导致处理不过来,才出问题的。
shitianj 2004-08-27
  • 打赏
  • 举报
回复
如果有条件我想应该单步调试一下,我觉得应该是中间那段insert代码有问题。可能是类型不符,可能是这段代码用到的控件没设好~既然在其他窗口中能进行数据操作,我认为数据库连接和网络连接都是没问题的。请查与这段代码有关的属性的设置和单步执行时中间各变量的值。
wanwangzhiwang 2004-08-27
  • 打赏
  • 举报
回复
用户名和密码都是一样的吗?换句话问:用户有操作权限吗?
eastliangliang 2004-08-27
  • 打赏
  • 举报
回复
把系统的出错信息贴出来,你不贴,光看怎么看的出来?
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复
在每个客户段都安装了sql server的客户端软件。而且软件里面还有其他信息的录入。
不管什么情况下,其他数据的录入很正常。而且没有出问题。
现在就是我上面说的那个窗体,老是出问题。
我觉得是数据量大的原因。
你们觉的是什么原因。
如果是数据量大的原因。那么怎么改善呢?

现在软件已经开始试用了。请大家赶快帮帮我把。
解决问题。马上给分。在加100都可以啊
ln521 2004-08-27
  • 打赏
  • 举报
回复
应该是客户端吧?
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复


我的数据库是用 sql server2000
而且原来在网络上都可以正常使用。但是原来没现在的数据量大。
我的连接字符串是:
connect:='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=false;User ID='+ad+';Initial Catalog='+databasename+';Data Source='+servername;

form1.ADOConnection1.ConnectionString:=connect;

form1.ADOConnection1.CommandTimeout :=10;

try
form1.ADOConnection1.Open;
form1.ADOConnection1.Connected:=true;
form_server.login:=true;
//showmessage('服务器连接成功!');
form_server.Close;
except
messagedlg('服务器连接失败,请检查网络设备是否正常工作,或输入信息是否有误!'+#13+#13+'系统将在2秒后自动关闭。',mtWarning,[mbOk],0);
sleep(2000);
wanwangzhiwang 2004-08-27
  • 打赏
  • 举报
回复
是不是你的数据库串连接不对?或者网络不通?
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复

现在问题找到了,
请大家想想办法
赶快告诉我该怎么办?
aehousmantao 2004-08-27
  • 打赏
  • 举报
回复

问题是这样的,我的adoconnection的延时设置的比较短。而且,程序的执行是的有先级
比较低,
因为对方的机子上启动了学多的软件。
所以我的软件要出来大量的数据是,因为其优先级比较低,所以一直到延时。

现在想问问大家,怎么把我的软件在运行时的优先级搞到最高
谢谢
GoldShield 2004-08-27
  • 打赏
  • 举报
回复
是不是你的客户机高连接好哦.
把问题说明白一点点
pdbird 2004-08-27
  • 打赏
  • 举报
回复
一、你用的是什么数据库
二、数据库在客户端有没有设好
eastliangliang 2004-08-26
  • 打赏
  • 举报
回复
把错误信息Raise出来看看。
大聪 2004-08-26
  • 打赏
  • 举报
回复
提示出来什么信息啊!@
aehousmantao 2004-08-26
  • 打赏
  • 举报
回复

解决问题马上给分。100分都给你。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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