大家看下面的代码
为什么老是只是插入前二个数据而后面的数据全都是空
这是怎么回事
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;var m : integer;
var kk :array[0..8] of variant;
var insersql:string;
beginadodataset1.First;
while not adodataset1.eof do
begin
for i:=0 to adodataset1.recordcount-1 do
begin for j:=0 to adodataset1.fieldcount-1 do
begin
kk[j]:=adodataset1.fields[j].AsVariant ;
end;
//插入数据到ACCESS中
adoquery1.close;
adoquery1.sql.clear;
insersql:='insert into try (au_lname,au_fname) values('''+kk[1]+''','''+kk[2]+''')';
adoquery1.SQL.Add(insersql);
adoquery1.ExecSQL ; for m:=0 to adodataset1.fieldcount-1 do
begin
kk[m]:='';
end;
adodataset1.next; end; end;
end;
谢谢海龙大哥刚才告诉我数据集的问题可是这又是怎么一回呢??
为什么老是只是插入前二个数据而后面的数据全都是空
这是怎么回事
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;var m : integer;
var kk :array[0..8] of variant;
var insersql:string;
beginadodataset1.First;
while not adodataset1.eof do
begin
for i:=0 to adodataset1.recordcount-1 do
begin for j:=0 to adodataset1.fieldcount-1 do
begin
kk[j]:=adodataset1.fields[j].AsVariant ;
end;
//插入数据到ACCESS中
adoquery1.close;
adoquery1.sql.clear;
insersql:='insert into try (au_lname,au_fname) values('''+kk[1]+''','''+kk[2]+''')';
adoquery1.SQL.Add(insersql);
adoquery1.ExecSQL ; for m:=0 to adodataset1.fieldcount-1 do
begin
kk[m]:='';
end;
adodataset1.next; end; end;
end;
谢谢海龙大哥刚才告诉我数据集的问题可是这又是怎么一回呢??
解决方案 »
- 人民币200元,求读取TWebbrowser中带HTTPONLY属性的Cookie
- 远程和本地SQL能联合update?
- 业务窗体用DLL封装怎么占内存这么大?
- 高手请指点。高分!
- 如何在程序中查询某一天的数据?
- dbgrid能显示多少记录
- FileSetAttr(fileName, 1);为什么出错?在线
- 如何高效率的看懂别人的程序?
- 在delphi中,如何将Excel(*.xls)文件保存为HTML的格式?请高手帮忙。
- delphi里怎么把指定文件夹内的所有文件名输出出来(重不重复无所谓,类型也无所谓)
- excel 奇怪问题
- 怎样才能在EHLIB的表格单元格里直接输入数据,像EXCL表一样
begin
kk[j]:=adodataset1.fields[j].AsVariant ;
end;
// 注意你的 var kk :array[0..8] of variant; 只有9的长度 小心越界..你的代码很乱....根本也不用弄的这么复杂
var
i,j:integer;
str1,str2:String;
insersql:string;
begin
if not adodataset1.active then showmessage('closeddataset');
if adodataset1.recordcount =0 then showmessage('nullresultset');
adodataset1.First;
while not adodataset1.eof do
begin
//插入数据到ACCESS中
adoquery1.close;
adoquery1.sql.clear;
insersql:='insert into try (au_lname,au_fname) values(adodataset1.fields[1].value,adodataset1.fields[2].value)';
adoquery1.SQL.Add(insersql);
adoquery1.ExecSQL ; adodataset1.next;
end;
end;这段代码没有测试过,SQL有可能不对,但是大致应该是这个意思。