ADO得奇怪错误
我用Delphi7下的ADO连接VFP7的自由表,在写数据时512条记录时出现
too many variablis的错误,为什么?
ADOConnection string是Provider=VFPOLEDB.1;DataSource=D:\myVFP;Password="";Collating Sequence=MACHINE
要是用ODBC连接则无问题,奇怪!!!
附源程序
unit tube50;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses qldata;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
dmrec:TQLDmRec;
stmD:TQLDmData;
i:Longint;
begin
ADOConnection1.Open;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO TBZQDM(ZQDM,ZQMC) VALUES(:DM,:MC)');
stmD:=TQLDmData.Create('shnow.dat',fmOpenRead);
stmD.FstRec;
for i:=1 to stmD.GetRecNo do
begin
stmD.ReadRec(dmrec);
ADOQuery1.Parameters.ParamValues['DM']:=dmrec.sZqdm;
ADOQuery1.Parameters.ParamValues['MC']:=dmrec.sZqmc;
ADOQuery1.ExecSQL;
stmD.NxtRec;
end;
stmD.Free;
stmD:=TQLDmData.Create('sznow.dat',fmOpenRead);
stmD.FstRec;
for i:=1 to stmD.GetRecNo do
begin
stmD.ReadRec(dmrec);
ADOQuery1.Parameters.ParamValues['DM']:=dmrec.sZqdm;
ADOQuery1.Parameters.ParamValues['MC']:=dmrec.sZqmc;
ADOQuery1.ExecSQL;
stmD.NxtRec;
end;
stmD.Free;
ADOQuery1.Close;
ADOConnection1.Close;
end;
end.