如何创建TParameters参数,然后 ADOQuery对象,使用自己创建的TParameters参数。
procedure TForm1.btn_3Click(Sender: TObject);
var
ps:TParameters;
p1,p2,p3:TParameter;
begin
ps:=TParameters.Create(nil,TParameter);
//p1:=ps.CreateParameter( 'f1',ftInteger,pdInput,4,1 );
//p2:=ps.CreateParameter( 'f2',ftString,pdInput,10,'a');
//p3:=ps.CreateParameter( 'f3',ftFloat,pdInput,8,1.3 ); //使用下面的Add也不行 p1:=ps.AddParameter;
p1.Name:='f1';
p1.DataType:=ftInteger;
p1.Direction:=pdInput;
p1.Value:=1; p2:=ps.AddParameter;
p2.Name:='f2';
p2.DataType:=ftString;
p2.Direction:=pdInput;
p2.Value:='a'; p3:=ps.AddParameter;
p3.Name:='f3';
p3.DataType:=ftFloat;
p3.Direction:=pdInput;
p3.Value:=2.3; qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('insert t3(f1,f2,f3) values(:f1,:f2,:f3)');
//在这里指定qry1中的参数值,为自己创建的参数,因为想把下面的赋值部分,
//写个通用的方法,这里先做个测试用
qry1.Parameters.ParamByName('f1').Value:=ps[0].Value;
qry1.Parameters.ParamByName('f2').Value:=ps[1].Value;
qry1.Parameters.ParamByName('f3').Value:=ps[2].Value;
qry1.ExecSQL;
end;
procedure TForm1.btn_3Click(Sender: TObject);
var
ps:TParameters;
p1,p2,p3:TParameter;
begin
ps:=TParameters.Create(nil,TParameter);
//p1:=ps.CreateParameter( 'f1',ftInteger,pdInput,4,1 );
//p2:=ps.CreateParameter( 'f2',ftString,pdInput,10,'a');
//p3:=ps.CreateParameter( 'f3',ftFloat,pdInput,8,1.3 ); //使用下面的Add也不行 p1:=ps.AddParameter;
p1.Name:='f1';
p1.DataType:=ftInteger;
p1.Direction:=pdInput;
p1.Value:=1; p2:=ps.AddParameter;
p2.Name:='f2';
p2.DataType:=ftString;
p2.Direction:=pdInput;
p2.Value:='a'; p3:=ps.AddParameter;
p3.Name:='f3';
p3.DataType:=ftFloat;
p3.Direction:=pdInput;
p3.Value:=2.3; qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('insert t3(f1,f2,f3) values(:f1,:f2,:f3)');
//在这里指定qry1中的参数值,为自己创建的参数,因为想把下面的赋值部分,
//写个通用的方法,这里先做个测试用
qry1.Parameters.ParamByName('f1').Value:=ps[0].Value;
qry1.Parameters.ParamByName('f2').Value:=ps[1].Value;
qry1.Parameters.ParamByName('f3').Value:=ps[2].Value;
qry1.ExecSQL;
end;
qry1.ParamByName('id').DataType := ftInteger;
qry1.ParamByName('id').AsInteger := 123;qry1.ParamByName('name').ParamType := ptInput;
qry1.ParamByName('name').DataType := ftString;
qry1.ParamByName('name').AsString := '123dd';
上边这样满足要求吗
我要自己创建参数,比如myParameters,然后给myParameters赋值
然后qry1中的参数,依次用赋值过的myParameters 来给qry1中的参数赋值
你的sql语句写出来肯定知道参数情况
先建立ps(TParameters), 然后赋给query即可
qry1.Parameters := ps
preparePara(qry:TADOQuery;params:TParameters)
var
i:integer;
begin
for i:=0 to qry.Parameters.Count-1 do
begin
qry.Parameters[0].Value:=params[0].Value;
end;
end;类似如此的,所以需要创建params参数 然后传递给方法preparePara