现在有7、8个XML文件,每个文件中的数据大约在1---5条(测试数据),问题是我用下面方法往数据库中写数据,但是总有一个xml文件的数据写不到数据库中,而且每次都是这个文件。其它XML文件没有出现过这种情况。这几个XML文件都是用adoquery.savetoFile()生成的。其它XML从来就没有出现过这种情况。有谁遇到过?知道这是怎么回事吗?function TDMF.saveTable(Filename: String;tablename:String): Boolean;
var
squery:TADOQuery;
I:Integer;
insertHead:String;
SQL:String;
begin
squery:=TADOQuery.Create(self);
squery.LoadFromFile(Filename); insertHead:='insert into '+Tablename+'(';
for I:=0 to squery.FieldCount-1 do
begin
insertHead:=insertHead+squery.Fields[i].FieldName;
if i<squery.FieldCount-1 then
insertHead:=insertHead+','
else
insertHead:=insertHead+') values(';
end;//for execsql('truncate table '+Tablename);
squery.First; //这句注释掉和不注释掉每有什么区别 while not squery.Eof do //明明XML文件里有数据可到这他总是.Eof=True
begin
SQL:=SQL+insertHead;
for I:=0 to squery.FieldCount-1 do
begin
if squery.Fields[i].Value=Null then
SQL:=SQL+'null'
else
sql:=sql+''''+AnsiReplaceStr(squery.Fields[i].AsString,'''','''''')+''''; if i<squery.FieldCount-1 then
sql:=sql+','
else
sql:=sql+')';
Application.ProcessMessages;
end;//for execsql(sql);
sql:='';
squery.Next; end;//while squery.Free;
end;
var
squery:TADOQuery;
I:Integer;
insertHead:String;
SQL:String;
begin
squery:=TADOQuery.Create(self);
squery.LoadFromFile(Filename); insertHead:='insert into '+Tablename+'(';
for I:=0 to squery.FieldCount-1 do
begin
insertHead:=insertHead+squery.Fields[i].FieldName;
if i<squery.FieldCount-1 then
insertHead:=insertHead+','
else
insertHead:=insertHead+') values(';
end;//for execsql('truncate table '+Tablename);
squery.First; //这句注释掉和不注释掉每有什么区别 while not squery.Eof do //明明XML文件里有数据可到这他总是.Eof=True
begin
SQL:=SQL+insertHead;
for I:=0 to squery.FieldCount-1 do
begin
if squery.Fields[i].Value=Null then
SQL:=SQL+'null'
else
sql:=sql+''''+AnsiReplaceStr(squery.Fields[i].AsString,'''','''''')+''''; if i<squery.FieldCount-1 then
sql:=sql+','
else
sql:=sql+')';
Application.ProcessMessages;
end;//for execsql(sql);
sql:='';
squery.Next; end;//while squery.Free;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货