通过 SQL.ADD('...') 向数据库中添加记录,可是结果却是 添加了两条同样的记录(主键除外),调试过程中发现,语句也只是执行了一次.
请问这是什么原因造成的 ?
请问这是什么原因造成的 ?
解决方案 »
- 第一次发帖,网络通讯稳定性,你们现在都用啥控件,如果有满意的Demo将再加100分
- IOCP做的高效率线程池类源码:GThreadPool
- 如何得到摄像头图像?
- delphi2007,体验如何?
- 关于用quick report进行报表设计不能求和~~求9~~~在线等~~
- 郁闷,散分!!!
- 帮我看看为什么错了。怎么改
- 三层中的adodataset,bde的query的检索速度及二者的区别?
- m_pWriter.EndWriting;这句有时要十秒才能完成
- 请问怎么读取webbrowser中打开的网页的session?
- 请问哪有可编辑的表格类控件啊?
- mscomm接收BCD码后转换成10进制或16进制的问题,特急,问题解决马上给分,在线等!
begin
SaveDate;
close;
end;procedure TfrmPerson.SaveDate ; //保存数据
var
InsertStr: string;
begin
InsertStr:= #39 + edtName.Text + #39 + ',' + #39 + cbxSex.Text + #39 + ',' + cbxAge.Text + ',';
InsertStr:= InsertStr + cbxYear.Text + '-' + cbxMonth.Text + '-' + cbxDay.Text ;
With DataMdl.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into Family1 values(' + InsertStr + '); '); //保存数据
SQL.Add('select fname as 姓名,fsex as 性别,fage as 年龄,fbirth as 出生年月 from family1'); //刷新数据
ExecSql;
Open;
end;
frmMain.dgridPerson.DataSource:= DataMdl.DataSource1 ;
end;
这样试试
begin
Close;
SQL.Clear;
SQL.Add('insert into Family1 values(' + InsertStr + '); '); //保存数据
ExecSql;
SQL.Clear;
SQL.Add('select fname as 姓名,fsex as 性别,fage as 年龄,fbirth as 出生年月 from family1'); //刷新数据
Open;
end;
就又select 所以ADOQuery1就把原来的那个先执行了一遍再select
明白?
open执行一遍
一加一等于几?
Open:执行返回数据集的SQL命令;
可以知道为什么为执行两次吧;^_^