客户端的表增添了如下数
id name xh grade
1 tony 12 5
2 jim 15 4
.......比如新增记录有n条,我想用n个insert语句比如insert table values(1,tony,12,5) 等逐个描述出来,放到服务端来执行,进行数据更新,怎么才能做到这一点.现在我把所有的数据都加到tstringlist里面了,然后怎么办?我想用一个循环
while not eof do
begin
for i:=0 to fieldcount-1 do
.....中间的这段是逐个推出insert语句
next;
end;
谢谢各位
id name xh grade
1 tony 12 5
2 jim 15 4
.......比如新增记录有n条,我想用n个insert语句比如insert table values(1,tony,12,5) 等逐个描述出来,放到服务端来执行,进行数据更新,怎么才能做到这一点.现在我把所有的数据都加到tstringlist里面了,然后怎么办?我想用一个循环
while not eof do
begin
for i:=0 to fieldcount-1 do
.....中间的这段是逐个推出insert语句
next;
end;
谢谢各位
解决方案 »
- 一个保存问题~~
- 想挑战难度的快来,如果得到鼠标指针在图片的第几行第几列的像素上?
- 关于读写TXT文件的问题,各位请进~~~
- 怎样才能知道邮件发送后的状态
- 土问:在post时出错了,adoquery1:dataset not in edit or insert mode.如何办?急啊!
- 寻山东潍坊的Delphi高手长期合作。
- 谁开发过active中的com object,请大侠帮忙(高分给)!!
- 使用远程数据模块的问题
- 比較table1表和table2表﹐將table2表中在table1表不存在的記錄更新到table1表
- help me ?delphi5
- 怎么在KeyPress事件中控制不能输入汉字??
- 各位DELPHI高手,有人收徒弟吗?我愿意出钱求学。
在insert table values(1,tony,12,5)后加","就可以一次执行。只适用于ms SQL
EX:
insert table values(1,tony,12,5)
UNION
insert table values(1,tony,12,5)
UNION
var
SqlStr: String;
SqlStr := 'insert table values(aaaSL[0],bbbSL[0],cccSL[0],dddSL[0])';
for i:=1 to Fieldcount-1 do <----你的循环条件
begin
SqlStr := SqlStr+'insert table values(aaaSL[i],bbbSL[i],cccSL[i],dddSL[i])';
end;
with adoquery do
begin
sql.clear;
sql.add(SqlStr);
Execute;
end;给你一个刚写的字符串叠加的例子
procedure TForm1.Button1Click(Sender: TObject);
var
Str: String;
i: Integer;
a,b: TStringList;
begin
Try
a := TStringList.Create;
b := TStringList.Create;
For i:=0 to 10 do
begin
a.Add(inttostr(i));
b.Add(inttostr(i+1));
end;
Str := 'insert into aaa values('''+a[0]+''','''+b[0]+'''),';
for i:=1 to 10 do
begin
Str := Str+'insert into aaa values( '''+a[i]+''','''+b[i]+'''),';
end;
Showmessage(str);
Finally
FreeAndNil(a);
FreeAndNil(b);
End;
end;
------------------------------------------------------------------------------
这个没有调试,语法应该不对,你参考后面的代码
while not eof do
begin
str:='';
for i:=0 to fieldcount-1 do
begin
if i=fieldcount-1 then
str :=str+''''+trim(Fields[i].AsString)+''''
else
str :=str+''''+trim(Fields[i].AsString)+''''+',';
sql :='insert'+#32+tablename+#32+'values'+'('+str+')';
end;
F_list.Add(sql);
next;
end;
EX:
insert table values(1,tony,12,5)
UNION all
insert table values(1,tony,12,5)
UNION all
while not eof do
begin
str:='';
for i:=0 to fieldcount-1 do
begin
if length(str)=0 then
str :=''''+trim(Fields[i].AsString)+''''
else
str :=str+','+''''+trim(Fields[i].AsString)+'''';
end;
sql :='insert into'+#32+tablename+#32+'values'+'('+str+')';
F_list.Add(sql);
next;
end;