本来点击提交铵钮,SQL的事务已经提交了,断电了就不会出现丢失数据的问题,但今天我们公司断电了,今天的数据全部不见了,但奇怪的是,昨天有部分数据也丢失了。我的程序如下:
begin
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from out_mas_table where out_id='''+ dbedit1.Text + '''');
adoquery1.Open ;
if adoquery1.RecordCount > 0 then
begin
application.MessageBox('数据有重复,请确认领料单号','信息',mb_ok) ;
exit ;
end ;
data.M_out_dataset.Post ;
end ;其中data.M_out_dataset的CommandText的属性是:select out_id, out_date, take_id, depart, operation, re from out_mas_table where out_id='000930'
我不会用dataset控件,大家指导一下
begin
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from out_mas_table where out_id='''+ dbedit1.Text + '''');
adoquery1.Open ;
if adoquery1.RecordCount > 0 then
begin
application.MessageBox('数据有重复,请确认领料单号','信息',mb_ok) ;
exit ;
end ;
data.M_out_dataset.Post ;
end ;其中data.M_out_dataset的CommandText的属性是:select out_id, out_date, take_id, depart, operation, re from out_mas_table where out_id='000930'
我不会用dataset控件,大家指导一下
2.SQL是可以设置当连接断开时是提交还是回滚,你可以看看你的设置
最好不要用DELETE删除
用数据感知控件碍 直接select 然后append 填写数据 最后post就直接提交数据了
如果locktype=ltBatchOptimistic 还要updatebatch一下
如果很久前的数据丢失,应该是断电造成的数据损坏库。
数据服务器应该有UPS做保护的。
肯定是你程序的问题,你为什么不在做程序的时候考虑这些呢,为什么不能在断电前将数据存储到硬盘呢,为什么你的程序不能判断什么时候断电呢,为什么你的程序断电后不能自动发电呢......成天就知道要钱,数据丢失了怎么就找不到你了呢......如果我是程序员
肯定不是程序的问题,你们知道断电为什么不在断电前完成操作而退出程序呢,如果你不知道什么时候断电那为什么不买个UPS呢,如果你不知道停多长时间电,那为什么不自己建个发电厂呢,......断电了数据丢失了才想起找我,给钱的时候怎么想不起来我呢......