程序里写
dbedit.text:=(某个值)
由于并没有写入内存,所以虽然dbedit显示出这个值,但保存还是保存不到后台数据库
请问怎么处理。?
最好不要用这个。
直接用数据集赋值 table.fieldbyname(sdf).asstring:=sdfsdf;
procedure TForm1.DBEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if TDBEdit(Sender).DataSource.DataSet.State in [dsInsert,dsEdit] then
begin
TDBEdit(Sender).DataSource.DataSet.FieldByName(TDBEdit(Sender).DataField).AsString:=TDBEdit(Sender).Text;
end;
end;
试试...
使用db空间的好处在于使自己不用和dataset打交道,也就是说你不必关心程序如果把值赋给数据集,所以你根本不用写什么dbedit.text:=(某个值),因为这个值是用户输入的,也不用谢dataset.fieldbyname().asstring := ...,如果你希望这个值是程序读入的,而不是用户填入的就是用dataset,但是使用dbedit.text:=(某个值)也可以,但是要注意在提交是需要转一下焦点,也就是这样使用
dbedit.setfocus
dbedit.text:=(某个值)
thothercontrol.setfocus;
或者使用
dbedit.field.asstring=(某个值)