Временные таблицы в ADOQuery отчета

отредактировано 16:49 Раздел: FastReport 3.0
Добрый день! В дизайнере отчета создаю два объекта TfrxADOQuery и привязываю их к разным MasterData, один из них помимо прочего создает временную таблицу MS SQL, другой пытается зачитать данные из этой временной таблицы, но безуспешно - выдается ошибка "объект не найден"!
Господа, что посоветуете сделать, чтобы эта конструкция заработала (критически важно)???

Комментарии

  • отредактировано 16:49
    Какая конструкция. Не вижу...
  • FokewolfFokewolf Киев
    отредактировано 16:49
    А DBFTable не пробовал использовать. Заливай себе одним запросом данные в нее, а другим делай выборку (как я понял из таблицы ты не все данные будешь забирать?)
  • LexLex
    отредактировано 16:49
    Если ты прописываешь ConnectionString непосредственно в Query то все правильно, у них разные коннекты и ты не можешь из одного увидить временную таблицу другого. Помести TfrxADOConnect и привяжи к ним свои Query.
  • отредактировано 16:49
    Я именно так и сделал: на делфийской форме TADOConnection и TfrxADOComponents, а в отчете только ADOQuery, подключенные к ADOConnection. Но так не работает! Кто не верит, можете попробовать!
    PS. Если на дельфийскую форму кинуть пару аналогичных ADOQuery и в runtime последовательно их активировать, то всё работает. Не понимаю, почему в отчете не так, ведь коннект один!
  • LexLex
    отредактировано 16:49
    Попробуй TfrxADOConnect положить на форму отчета. И передай ей коннестион стринг со своего TADOConnect.
    Похоже когда цепляшь Внешний коннект к TfrxADOQuery, то фаст просто
    прописвывает ConnectionString.
  • отредактировано 16:49
    На дельфийской форме только отчет. На форму отчета кинул TfrxADODatabase, с настроеным ADO-соединением, к которому привязал все ADOQuery, что на форме отчета. Запускаю отчет - всё таже ошибка "Invalid object name ..."!
    Опять не получилось!
  • LexLex
    отредактировано 16:49
    Похоже в фасте каждая Query имеет свой коннект.
    Ну что-ж используй постоянную таблицу.
  • отредактировано 16:49
    Интересное замечание! При использовании аналогичных BDE-компонент всё работает как надо!
  • LexLex
    отредактировано 16:49
    Я тут проверил и у меня все нормально (fr 3.18).
    Создал пустой отчет, положил на него ADODatabase1, ADOQuery1, ADOQuery2.
    прописал текст запросов:
      ADOQuery1.SQL = Create table #aaa(i Int)
      ADOQuery2.SQL = select *  from #aaa
    
    в коде отчета на писал
    begin
      ADODatabase1.Connected:=False;
      ADODatabase1.Connected:=True;
      ADOQuery1.ExecSQL;
      ADOQuery2.Open;
    end.
    
    и все нармально, не ругаеться.

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

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