作者:weidnermennenga_153 | 来源:互联网 | 2023-05-17 09:05
我用的是DELPHI自带的db数据库table1.append;增加新记录方法table1.FieldByName(姓名).asstring:edit1.text;table1.
我用的是DELPHI自带的db数据库
table1.append;//增加新记录方法
table1.FieldByName('姓名').asstring:=edit1.text;
table1.FieldByName('职务').asstring:=edit3.text;
table1.FieldByName('雇员编号').asstring:=edit2.text;
table1.FieldByName('雇员部门').asstring:=combobox1.text;
table1.FieldByName('雇员薪水').asfloat:=strtofloat(edit4.text);
table1.FieldByName('雇用日期').asdatetime:=DateTimePicker1.date;
table1.FieldByName('雇员电话').asstring:=edit5.text;
table1.post;//确定入库
table1.first;//显示第一条记录,以确保记录被完全增加到数据库中
showmessage('记录输入完成');
好像是没错吧,可是几条记录还正常,几百条记录后就什么问题都有了,要不就是记录消失了,要不就是把记录提取出来修改后,用"table1.edit"方法修改,提交后,记录里并不是把这条记录修改了,反而多了一条修改后的记录,而原记录居然还会存在,我不知怎么办了.新手求教,谢谢了
10 个解决方案
用"table1.edit"方法修改,提交后,记录里并不是把这条记录修改了,反而多了一条修改后的记录,而原记录居然还会存在,
---------------------------------------------------------------------------------
请检查Table1.Edit前后,是否调用了Table1.Append,Table1.Insert等,因为你没有使用TDBEdit等数据编辑控件,Edit等控件不会自动感应更新,你自己以为是在修改状态,而实际上是在插入状态。你可以在Table1.Post前插入代码检查一下表的状态:
if Table1.State = dsInsert then
ShowMessage('Insert')
else
ShowMessage('not Insert');
如果是在插入状态,肯定你的代码中无意调用了插入语句,可跟踪检查。
不会吧,
table1.first;//
不要这句,不要移动看看
给表加主键,否则BDE显示的数据可能会是混乱的,不过即便没有建立主键,将表关闭后再打开数据也会正常。
你试将表关闭再打开,表内的数据还是混乱的吗?
Paradox虽然有点烂,但至少不应该出现这种问题,检查一下你的表是否建正确了,我们这儿使用Paradox输入了几万条记录都不会出现数据丢失的情况,只是索引经常坏掉。