Передача параметра в запрос

отредактировано 08:14 Раздел: FastReport 3.0
Всем доброе время суток.
Задача: Есть большой массив ID-ек определенной таблицы. Их количество может менятся.
Вопрос: Как с помощью свойства TfrxAdoQuery Params передать в запрос этот масив? Можно одной строкой, но размера nvarchar(max) маловато.
Можно как-то передать єтот масив в переменную запроса типа Cursor или Table?

Комментарии

  • Stalker4Stalker4 123
    отредактировано 08:14
    lutikman написал: »
    Всем доброе время суток.
    Задача: Есть большой массив ID-ек определенной таблицы. Их количество может менятся.
    Вопрос: Как с помощью свойства TfrxAdoQuery Params передать в запрос этот масив? Можно одной строкой, но размера nvarchar(max) маловато.
    Можно как-то передать єтот масив в переменную запроса типа Cursor или Table?
    передать в Params нельзя, но можно сделать по другому:
    Сохраните массив ID в строку, что бы у вас получилось строка такого вида: cID = '1,2,3,4,5'
    cID := '';
    for nCou := 0 to Length(arrID)-1 do
      cID := cID+arrID[nCou] +',';
    System.Delete(cID, Length(cID), 1);
    А потом например в событии отчета OnStartReport (или в любом другом в зависимости от вашего отчета) динамически в TfrxAdoQuery создать запрос:
    with frxAdoQuery do begin
      Close;
      SQL.Clear;
      SQL.Add('select * from MYTABLE where ID in ('+cID+')');
    end;
  • отредактировано 08:14
    Stalker4 написал: »
    передать в Params нельзя, но можно сделать по другому:
    Сохраните массив ID в строку, что бы у вас получилось строка такого вида: cID = '1,2,3,4,5'
    cID := '';
    for nCou := 0 to Length(arrID)-1 do
      cID := cID+arrID[nCou] +',';
    System.Delete(cID, Length(cID), 1);
    А потом например в событии отчета OnStartReport (или в любом другом в зависимости от вашего отчета) динамически в TfrxAdoQuery создать запрос:
    with frxAdoQuery do begin
      Close;
      SQL.Clear;
      SQL.Add('select * from MYTABLE where ID in ('+cID+')');
    end;
    Сделал через временную таблицу. Работает быстро и удобно обращаться

Оставить комментарий