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

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

Комментарии

  • Stalker4Stalker4 123
    отредактировано 22:11
    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;
    
  • отредактировано 22:11
    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;
    
    Сделал через временную таблицу. Работает быстро и удобно обращаться

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

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.