主题:求助,delphi编程 关于一次性添加多条记录
风之海洋
[专家分:0] 发布于 2007-06-04 09:40:00
本人是delphi新手,最近在学习数据库编程的时候,想对两条以上的记录进行一起添加。
form1 上有dbgrid query1 添加和保存两个按钮 edit1 edit2 edit3
数据库表 成线(学号,课程号,成绩)
单击'添加'按钮 dbgrid 中显示 001 0001 75 但成绩表中未添加这条记录
再单击'添加'按钮 dbrid 中显示 002 0003 80 但成绩表中未添加这条记录
当我单击'保存'按钮才能将dbgrid 中两条记录添加到 数据表成绩表中.
请大侠们多多指教, 也可以发我邮箱80870789@qq.com
回复列表 (共10个回复)
沙发
zaliang [专家分:1010] 发布于 2007-06-04 13:35:00
没有POST吧?
板凳
风之海洋 [专家分:0] 发布于 2007-06-04 15:19:00
我用SQL语句添加的,Execsql执行添加的
3 楼
zaliang [专家分:1010] 发布于 2007-06-05 11:59:00
贴上来代码看看.
4 楼
风之海洋 [专家分:0] 发布于 2007-06-05 16:44:00
不清楚啊代码怎么写
5 楼
jianfeihua [专家分:780] 发布于 2007-06-06 20:52:00
1、先要设置DataSet的锁类型是ltBatchOptimistic
(设置了这个属性后Post不能将数据提交到数据库中)
2、提交数据的时候用代码AdoDataSet1.BatchUpdate();来提交数据
6 楼
风之海洋 [专家分:0] 发布于 2007-06-07 12:57:00
请问楼上的,对dbgrid1 中dataset 设置吗?
7 楼
duck04551 [专家分:90] 发布于 2007-06-09 11:35:00
可以设置变量先保存起来,当单击保存时再提交
8 楼
wpy020327 [专家分:0] 发布于 2007-06-11 20:42:00
用临时表吧,更省力些,可以取消操作。
9 楼
linjipeng0 [专家分:220] 发布于 2007-09-17 16:27:00
var
I: Integer;
sqltemp,sqltemp1,sqltemp2:string;
begin
for I := 0 to DBGrid1.FieldCount-1 do // Iterate
begin
sqltemp1:=sqltemp1+'['+DBGrid1.Fields[i].FullName+'],';
sqltemp:=sqltemp+'['+DBGrid1.Fields[i].FullName+'] varchar(1000),';
end; // for
sqltemp1:=Copy(sqltemp1,1,Length(sqltemp1)-1);
sqltemp:=Copy(sqltemp,1,Length(sqltemp)-1);
Qry1.First;
while not Qry1.Eof do
begin
with Qry2 do
begin
sqltemp2:='';
for I := 0 to Qry1.FieldCount - 1 do // Iterate
begin
sqltemp2:=sqltemp2+''''+Qry1.Fields[i].AsString+''',';
end; // for
sqltemp2:=Copy(sqltemp2,1,Length(sqltemp2)-1);
Close;
SQL.Clear;
SQL.Add('insert into u_excel(id,'+sqltemp1+') ');
SQL.Add('values ('+''''+Edit1.Text+''','+sqltemp2+')');
ExecSQL;
end; // with
Qry1.Next;
end; // while
end;
10 楼
紫龙程序员 [专家分:0] 发布于 2007-10-19 22:43:00
怎么用临时表呢?????
我来回复