往ACCESS添加一条记录时,除了添加要添加的记录,同时还会添加一条空记录,所有列都是空。
并且在DBGRID里面显示的时候,只显示那条空记录,而不显示所添加的记录。但是当我关掉程序,重新进入时,那条新添加的记录才显示。
代码如下:
procedure TFjizicao.enterbian;
begin
with dmmain.Qbian do
begin
Close;
sql.Clear;
sql.Add('insert into bian(chang_bian,ke_bian,banliao,moju,chicun,kehu,riqi) values(:cb,:kb,:bl,:mj,:cc,:kh,:rq)');
parambyname('cb').Value:=trim(mchangbian.Text);
parambyname('kb').Value:=trim(mkebian.Text);
parambyname('bl').Value:=trim(mbanliao.text);
parambyname('mj').Value:=trim(mmoju.text);
parambyname('cc').Value:=trim(mchicun.text);
parambyname('kh').Value:=trim(mkehu.Text);
parambyname('rq').Value:=FormatDateTime('yyyy-mm-dd',mriqi.DateTime);
ExecSQL;
end;
end;
procedure TFjizicao.mokClick(Sender: TObject);
var yuanbm:Tbookstr;
begin
if trim(mchangbian.text)='' then
begin
showmessage('厂编不能空,不能保存!');
mchangbian.SetFocus;
exit;
end;
//增加新记录
if (ziliaocao=1) then
begin
if ziliaoku=1 then
with dmmain.yang do
begin
if Locate('chang_bian', trim(mchangbian.text), []) then
begin
showmessage('厂编已有重复,增加无效!');
mchangbian.SetFocus;
exit;
end;
{Append;}
Insert;
enteryang;
Post;
end;
if ziliaoku=2 then
with dmmain.bian do
begin
if Locate('chang_bian', trim(mchangbian.text), []) then
begin
showmessage('厂编已有重复,增加无效!');
mchangbian.SetFocus;
exit;
end;
{Append;}
Insert;
enterbian;
Post;
end;
end;
fjizicao.Close;
end;
并且在DBGRID里面显示的时候,只显示那条空记录,而不显示所添加的记录。但是当我关掉程序,重新进入时,那条新添加的记录才显示。
代码如下:
procedure TFjizicao.enterbian;
begin
with dmmain.Qbian do
begin
Close;
sql.Clear;
sql.Add('insert into bian(chang_bian,ke_bian,banliao,moju,chicun,kehu,riqi) values(:cb,:kb,:bl,:mj,:cc,:kh,:rq)');
parambyname('cb').Value:=trim(mchangbian.Text);
parambyname('kb').Value:=trim(mkebian.Text);
parambyname('bl').Value:=trim(mbanliao.text);
parambyname('mj').Value:=trim(mmoju.text);
parambyname('cc').Value:=trim(mchicun.text);
parambyname('kh').Value:=trim(mkehu.Text);
parambyname('rq').Value:=FormatDateTime('yyyy-mm-dd',mriqi.DateTime);
ExecSQL;
end;
end;
procedure TFjizicao.mokClick(Sender: TObject);
var yuanbm:Tbookstr;
begin
if trim(mchangbian.text)='' then
begin
showmessage('厂编不能空,不能保存!');
mchangbian.SetFocus;
exit;
end;
//增加新记录
if (ziliaocao=1) then
begin
if ziliaoku=1 then
with dmmain.yang do
begin
if Locate('chang_bian', trim(mchangbian.text), []) then
begin
showmessage('厂编已有重复,增加无效!');
mchangbian.SetFocus;
exit;
end;
{Append;}
Insert;
enteryang;
Post;
end;
if ziliaoku=2 then
with dmmain.bian do
begin
if Locate('chang_bian', trim(mchangbian.text), []) then
begin
showmessage('厂编已有重复,增加无效!');
mchangbian.SetFocus;
exit;
end;
{Append;}
Insert;
enterbian;
Post;
end;
end;
fjizicao.Close;
end;
DbGrid.DataSource.Dataset.Open
或者DbGrid的那个AdoQuery.ReQuery
enterbian;
Post;
????
Qbian TQuery
bian TTable
你说代码有问题,问题在哪里?
enterbian; ////////又是插入,有值
Post;
再看看撒
Insert;你先调用了一下
然后又在enterbian通过sql插入了一条
那么引发下面三个问题:
1、那么我该如何修改添加记录,然后又不会加入新记录。
2、如果我添加完一条记录,如何同时更新显示这个表的DBGRID,让新的记录也可以显示。
3、当我输完一条记录后,又去输另一条记录时,程序会报错,错误内容:
Project Dianzi.exe raised exception class ENoResultSet with message 'Error creating cursor handle'.