프로젝트에서 사용하는 일부 SQL 코드를 매개 변수를 사용하여 변환하려고합니다. 삽입 작업이 정상적으로 작동합니다.쿼리의 값을 매개 변수로 가져 오기
with SQLDataSet do begin
Close;
SQL.Text := 'INSERT INTO testtable (keyname, waarde) VALUES (:keyname,:waarde)';
Prepare;
for i := 1 to 10000 do begin
ParamByName('waarde').AsInteger := i;
ParamByName('keyname').AsString := 'Testa'+IntToStr(i);
ExecSql;
end;
end;
잘 작동하고 빠릅니다.
그러나, 나는 그것이 SELECT 문에서 작동하지 않습니다.
with SQLDataSet do begin
SQL.Clear;
SQL.Text := 'SELECT :waarde = waarde FROM testtable WHERE keyname = :keyname';
Prepare;
for i := 1 to 10000 do begin
ParamByName('keyname').AsString := 'Testa'+IntToStr(i);
ExecSQL;
k[i] := ParamByName('waarde').AsInteger;
Close;
end;
end;
하지만 K의 값 [내가] 단지 공의로 채워집니다 : 은 먼저 다음은 작동하는 것 같다. 구식 방식을 계속 선택하고, 쿼리를 실행하고, 결과 집합을 열고 가로 지르거나, 매개 변수 값을 올바르게 선택하기 위해 한 행만있는 쿼리가있는 방법이 있습니까?
사용중인 데이터 집합의 유형을 알려주십시오. 예 : TDataset, TADODataset, TClientDataset 등 ... – MikeT
where 블록에는 매개 변수가 있지만 매개 변수화 할 수 없습니다. –
@MikeT 순간에는 ODBC Express DataSet입니다.하지만 ADO로도 마이그레이션 중이지만 마이그레이션 중입니다. –