比方说你有,有一个TEDIT其中一个用户类型和SQL查询获取查询字符串的PARAMS和数据类型
SELECT * FROM X WHERE X.A = :A and X.B = :B and X.C= :C
有没有办法让类型的德尔福接口:一,: B,:C Params?我设法得到了参数的名称。使用此代码
procedure TfrmA.Button1Click(Sender: TObject);
var
queryInput, queryOutput , aux : string;
pozitie : Integer;
param : string;
Ch,Chx : Char;
begin
queryInput := TEdit.Text;
queryOutput := StringReplace(queryInput,':','@',[rfReplaceAll, rfIgnoreCase]);
aux := Copy(queryOutput,AnsiPos('@',queryOutput),200);
while Length(aux) > 0 do begin
if AnsiPos('@',aux) = 0 then break;
for Ch in aux do
begin
if Ch = ' ' then begin
param := param + ' ';
break
end else param := param + Ch;
end;
ShowMessage(param);
test := Copy(test,2,200);
test := Copy(test,AnsiPos('@',test),200);
end;
end;
帕拉姆字符串现在containt:@A @B @C
反正是有,我可以找出则params的数据类型?
您将需要告知现场和表格来了解数据类型 – Passella 2014-09-01 14:03:35
你问过类似的问题,最近,在这种情况下,你需要的'sp_describe_undeclared_parameters '函数来检索数据类型。 – whosrdaddy 2014-09-01 14:19:24
挑剔的评论,如果你使用D2009或更高版本,你应该摆脱'AnsiPos'并使用'Pos'函数。 – whosrdaddy 2014-09-01 14:20:42