ADOQuery的问题 我用ADOQuery.Savefile把查询数据导为一个外部文件,然后操作数据(其中有删除),最后再把外部的数据用LoadFromFile导进来,但是如何更新到数据库? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 post应不行我是从数据集中一条一条的拼sql语句,然后一条一和的insert 似的.我原来就是用清空数据表,然后循环Insert的.我想着有或许ADO有什么方法的可以利用.TO;: lyyxzq(李位) 请是否可以说具体点TO: yzykjh(多米诺骨牌) 不明白,能说清楚点. 不知道你问得是不是这个意思!unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls;type TForm1 = class(TForm) Button1: TButton; ADOConnection1: TADOConnection; Button2: TButton; ADOQuery1: TADOQuery; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}uses comobj;var cn ,rs,rs1 : Variant; List : TStringList;procedure TForm1.Button1Click(Sender: TObject);var p,i,idx :Integer;begin cn := CreateOleObject('adodb.connection'); rs := CreateOleObject('adodb.recordset'); rs1 := CreateOleObject('adodb.recordset'); cn.Open(adoConnection1.ConnectionString); rs1.Open('select * from test',cn); List := TStringList.Create; while not rs1.Eof do begin List.Add(rs1.Fields[0].Value); rs1.MoveNext; end; rs1.Close; rs.Open('c:\test.xml'); rs1.Pagesize := 1; rs1.Open('SELECT * FROM TEST',CN,3,2); p := 0; while not rs.Eof do begin idx := List.IndexOf(rs.Fields[0].Value); if idx = -1 then rs1.Addnew else rs1.absolutePage := idx+1; for i := 1 to rs.Fields.Count - 1 do rs1.Fields[i].Value := rs.Fields[i].Value; rs1.Update; rs.MoveNext; Inc(p); Button2.Caption := IntToStr(p); button2.Update; end;end;procedure TForm1.Button2Click(Sender: TObject);begin ADOQuery1.SaveToFile('c:\test.xml');end; 你好:zhenpengka(小鸟笨笨) ; 这也是通过检查,然后没有的加进去.我只是问是否ADOQuery是否有什么方法或事件能直接全部更新到数据库里面自动覆盖重复的记录. Delphi TADOQuery带参数查询出错 delphi高手看过来,远程数据库问题。 delphi7编辑器增加逻辑线 做个像QQ泡泡等视频聊天程序 问一个简单问题:关于如何使进度条出现增加的问题 如何在TreeView上添加同一级的节点? 关于PASCAL指针 郁闷+强烈抗议! delphi7.0在win2000 sever/win2003 sever 下系统抱"ntdll.dll"异常错误 MediaPlayer的问题,复杂?简单?我不知道!!! 如何从colordialog中读取饱和度,色调,亮度值?如果能用RGB來計算,用什麼樣的計算方式? 送分题来罗!各位大侠帮看看呀
我是从数据集中一条一条的拼sql语句,然后一条一和的insert
TO;: lyyxzq(李位)
请是否可以说具体点
TO: yzykjh(多米诺骨牌)
不明白,能说清楚点.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
Button2: TButton;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
uses comobj;
var
cn ,rs,rs1 : Variant;
List : TStringList;
procedure TForm1.Button1Click(Sender: TObject);
var
p,i,idx :Integer;
begin
cn := CreateOleObject('adodb.connection'); rs := CreateOleObject('adodb.recordset'); rs1 := CreateOleObject('adodb.recordset');
cn.Open(adoConnection1.ConnectionString);
rs1.Open('select * from test',cn);
List := TStringList.Create;
while not rs1.Eof do
begin
List.Add(rs1.Fields[0].Value);
rs1.MoveNext;
end;
rs1.Close; rs.Open('c:\test.xml');
rs1.Pagesize := 1;
rs1.Open('SELECT * FROM TEST',CN,3,2);
p := 0;
while not rs.Eof do
begin
idx := List.IndexOf(rs.Fields[0].Value);
if idx = -1 then
rs1.Addnew
else
rs1.absolutePage := idx+1;
for i := 1 to rs.Fields.Count - 1 do
rs1.Fields[i].Value := rs.Fields[i].Value;
rs1.Update;
rs.MoveNext;
Inc(p);
Button2.Caption := IntToStr(p);
button2.Update;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.SaveToFile('c:\test.xml');
end;
这也是通过检查,然后没有的加进去.我只是问是否ADOQuery是否有什么方法或事件能直接全部更新到数据库里面自动覆盖重复的记录.