一个关于操作XML文件时遇到奇怪问题
现在有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;