procedure TForm1.Button1Click(Sender: TObject);
begin
with qry1 do
begin
close;
sql.Clear;
SQL.Add('select * from zd_qyzg where gh=:gh');
Parameters.ParamByName('gh').Value:='999' ;
ShowMessage(SQL.DelimitedText);
Open;
ShowMessage(SQL.CommaText);
end;
end;如上,想在运行之后看赋值之后的完整sql代码 有办法吗
begin
with qry1 do
begin
close;
sql.Clear;
SQL.Add('select * from zd_qyzg where gh=:gh');
Parameters.ParamByName('gh').Value:='999' ;
ShowMessage(SQL.DelimitedText);
Open;
ShowMessage(SQL.CommaText);
end;
end;如上,想在运行之后看赋值之后的完整sql代码 有办法吗
自己组合下show出来,或者除了将SQL show出来外,同时也将传进去的值也show出来。
那就写在每个DataSet的OnBeforeOpen事件中:
procedure TfmFAIDetail.QryDataBeforeOpen(DataSet: TDataSet);
var
i: integer;
s: string;
begin
s := '';
for i := 0 to QryData.Params.Count - 1 do
s := s +#13#10+ QryData.Params.Items[i].AsString;
ShowMessage(s);
ShowMessage(QryData.CommandText);
end;
只showmessage(s)了下面的还是show不出完整的
只showmessage(s)了下面的还是show不出完整的s是Show你传的参数值,最后一句是ShowMessage(SQL.CommaText);显示出SQL的内容。
只showmessage(s)了下面的还是show不出完整的s是Show你传的参数值,最后一句是ShowMessage(SQL.CommaText);显示出SQL的内容。我意思是显示的sql代码不是赋了参数的,而只是select * from zd_qyzg where gh=:gh
只showmessage(s)了下面的还是show不出完整的s是Show你传的参数值,最后一句是ShowMessage(SQL.CommaText);显示出SQL的内容。我意思是显示的sql代码不是赋了参数的,而只是select * from zd_qyzg where gh=:gh 我知道你的用意,只是好像没法做到。只能单独的显示参数值和SQL内容。