powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как написать в Query текст с параметрами
9 сообщений из 9, страница 1 из 1
Как написать в Query текст с параметрами
    #32131913
kas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kas
Гость
один Query используеться для разных целей, как в него написать sql с параметрами, что бы потом в них писать как query.ParamByName('param').AsInteger:= ....?
делаю так:
qryMeters.sql.clear;
qryMeters.SQL.Add('select *');
qryMeters.SQL.Add('from GKH.METERS');
qryMeters.SQL.Add('where (OBJECT_ID= :ObjectID) and (TYPE_FLG = :TypeFlg)'); qryMeters.SQL.Add('order by TYPE_ID');

потом не знаю что делать!

в параметры :ObjectID, :TypeFlg и надо будет потом писать
qryMeters.ParamByName('ObjectID').AsInteger:= ....!
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32131917
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kas писал:
один Query используеться для разных целей, как в него написать sql с параметрами, что бы потом в них писать как query.ParamByName('param').AsInteger:= ....?
делаю так:
qryMeters.sql.clear;
qryMeters.SQL.Add('select *');
qryMeters.SQL.Add('from GKH.METERS');
qryMeters.SQL.Add('where (OBJECT_ID= :ObjectID) and (TYPE_FLG = :TypeFlg)'); qryMeters.SQL.Add('order by TYPE_ID');

потом не знаю что делать!

в параметры :ObjectID, :TypeFlg и надо будет потом писать
qryMeters.ParamByName('ObjectID').AsInteger:= ....!

Правильно делаешь.
После qryMeters.SQL.Add.... пишешь qryMeters.ParamByName... для всех параметров, а потом qryMeters.Open;
и будет тебе счастье.
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32132469
Лекс[КВ]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и не забудь, что если параметры зависят от какого-то условия, то после
qryMeters.SQL.Add('where (OBJECT_ID= :ObjectID) and (TYPE_FLG = :TypeFlg)'); qryMeters.SQL.Add('order by TYPE_ID');
ставишь проверку выполнения условия
if ... then qryMeters.ParamByName('ObjectID').AsInteger:= ....
else qryMeters.ParamByName('ObjectID').AsInteger:= ....
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32133625
bigman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как насчет счастья с выходными параметрами ?
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32133848
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select возвращает dataset, какие ещЁ выходные параметры??
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32134364
bigman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если писать по науке, то в Query есть выходные параметры.
Как присвоить им возвращаемые значения из Stored Proc ?
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32134373
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 bigman

Ну если писать по науке, то в Query есть выходные параметры.
Как присвоить им возвращаемые значения из Stored Proc ?


Выходных параметров в запросе нет. Они есть у хранимых процедур. Если надо вызвать хп с выходными параметрами, то в TQuery пишут (для MS SQL)

Код: plaintext
EXEC dbo.SomeProc :InputParam, :OutputParam OUTPUT


или используют TStoredProc.

Тока, если ты работаешь с TQuery. То и параметры, как и SQL надо добавлять.

Вот тебе пример динамического создания и использования TStoredProc.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function RunGranted(DB: TDatabase): boolean;
var
  Proc: TStoredProc;
  Msg: string;
  CheckResult: integer;
begin
  Result := False;
  Proc := TStoredProc.Create(Application);
  try
    Proc.DatabaseName := DB.DatabaseName;
    Proc.StoredProcName := 'usp_CheckAppPermissions';
    Proc.Params.CreateParam(ftString, '@App', ptInput);
    Proc.Params.CreateParam(ftInteger, 'Result', ptResult);
    Proc.ParamByName('@App').AsString := AnsiUpperCase(ExtractFileName(Application.ExeName));
    try
      Proc.ExecProc;
      CheckResult := Proc.ParamByName('Result').AsInteger;
      if CheckResult =  0  then
        ...
      else
        Result := True;
    except
      on E: Exception do begin
         ...
      Exit;
      end;
    end;
  finally
    Proc.Free;
  end;
end;


Если используешь наследников TCustomADODataSet, то там у коллекции параметров есть метод Refresh.
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32134375
bigman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я немного не про это ....

ptOutput - Used to output a field value. Identifies a parameter used by a stored procedure to return values to an application.

Есть возможность вернуть значение из Stored Proc через pyOutPut параметр.
Но как ?
...
Рейтинг: 0 / 0
Как написать в Query текст с параметрами
    #32134379
bigman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все я понял. Вопрос снимаю. Всем спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как написать в Query текст с параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]