现在有这样一个需求 我从xml中读取数据 保存到数据库中
数据库中什么值也没有 代码如下
ADOQuery1.Close;
ADOQuery1.LoadFromFile('E:\1.adq');
ADOQuery1.Open;
adotable1.Clone(adoquery1);
//这里tablename是有值得 并且是数据库对应得表 ADOConnection 也是设置好了的
showmessage(adotable1.tablename);
adotable1.UpdateBatch(arall);这里是克隆好了得 但是 数据库中却没有任何值
这是为什么???
数据库中什么值也没有 代码如下
ADOQuery1.Close;
ADOQuery1.LoadFromFile('E:\1.adq');
ADOQuery1.Open;
adotable1.Clone(adoquery1);
//这里tablename是有值得 并且是数据库对应得表 ADOConnection 也是设置好了的
showmessage(adotable1.tablename);
adotable1.UpdateBatch(arall);这里是克隆好了得 但是 数据库中却没有任何值
这是为什么???
uses
ADOInt;function GetAdoChangeCount(DataSet:TCustomADODataSet):Integer;
var
r:_RecordSet;
begin
Result:=0;
if DataSet.Active then
try
r:=DataSet.Recordset.Clone(adLockBatchOptimistic);
r.Filter:=adFilterPendingRecords;
Result:=r.RecordCount;
except
end;
end;
我的意思是 1.adq 裏面有一個傳入表的,也就是這個XML裏面的數據的源表,與你的 AdoTable 的相同嗎
里面得值是通过程序读出excel中的数据的
有个奇怪得现象
excel中我弄的是字段名是 a b c d 1.adq 中出现了 这样的东西 a b F3 c F4 d然后我就把表中字段也改成了 a b F3 c F4 d但是还是不行
一時估計你也不太理解了。你這樣吧,先用一個ADOQUERY 載入 1.adq 後,然後將這個數據集裏的數據,循環導到你的目的表adoquery2.close;
adoquery2.sql.text := 'select * from '+ adotable1.tablename;
adoquery2.open;adoquery1.loadfromFile('E:\1.adq');with adoquery1 do while not eof do begin
adoquery2.append;
adoquery2.fieldbyname('字段名').Value := fieldbyname('字段名').Value;
.......................
next;
end;