delphi 自定义函数返回值是数据库一个表格中所需的记录

2025-05-13 01:19:16
推荐回答(3个)
回答1:

function TForm1.GetData(sqlconn:string;Tablename, FieldName, Fieldvalue: string;var Errmsg:string): Olevariant;
var
adocon: TADOConnection;
adoq: TADOQuery;
dsp: TDataSetProvider;
begin
errmsg:='';
Result:=null;
adocon:=TAdoconnection.Create(nil);

try
adocon.ConnectionString := sqlconn;
adocon.Open();
except
on e:exception do
begin
errmsg:=e.Message;
adocon.Free;
exit;
end;
end;
adoq:=TAdoQuery.Create(nil);
dsp:=TDataSetProvider.Create(nil);
adoq.SQL.Add('select * from '+TableName +'where '+Fieldname+' = '''+FieldValue+'''');
dsp.DataSet:=adoq;

try
adoq.Open;
result:=dsp.Data;
adocon.Close;
except
on e:exception do
begin
errMsg:=e.Message;
adocon.Close;
adoq.Free;
dsp.Free;
adocon.Free;
exit;
end;
end;
adocon.Close;
adoq.Free;
dsp.Free;
adocon.Free;
end;

此方法返回的Olevariant赋给TClientDataSet.data即可还原数据集,而且与数据库是无连接的

回答2:

可以在query1.sql.add中使用变量,但要注意字符串要括上单引号的问题。

回答3:

赞同二楼的。