| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Работа с MSSQL. ADO+SDAC. Запрос не выполняется |
| Автор: hug 5.10.2007, 17:11 | ||||
| Добрый День. Проблема такого: есть немаленький запросик для бухглатерской формы: Последнее к чему я пришел это разбивка его выполнения из под Делфей на 2 части 1 часть
т.е. идет создание временной таблицы (к сожалению не #) и вставка туда записей. Proc - хранимая процедура, которая так же не так проста (создание временных таблиц\индексов на них. куча логики и прочее) Пытаюсь выполнить эту вставку при помощи ADOCommand. 2 часть
Select выполняю TMSQuery из SDAC 1) если Proc возвращает немного записей <1000 то все идет ОК. если больше то выполнение запроса не идет. Delphi как будто замирает и все. Из под MsSql запрос выполняется великолепно. Из под делфи ADOcommand не может выполнится. Подскажите пожалуйста с чем этим может быть связано? 2) Вначале весь запрос шел в одной сессии из TMSQuery. Использовал #TempTable. Но при большом кол-ве записей запрос также не выполнялся из под Делфи. Из под среды MS SQL все выполняется прекрасно 3)Пробовал ADOQuery. На большом числе записей запрос также не выполнялся 4) Какие есть еще варианты выполнегние большого трудного запроса из под Делфи. Средства ADO\SDAC. Может все запихнуть в ADOCommand. Или оно только для DDL а не для селекта. Вообщем запарился я уже дружить делфи и mssql. повторяюсь из под среды скуля запрос выполнятся отлично и за приемлимое време(даже большое кол-во записей). Бухгалтерия простаивает. Подскажите пожалуйста варианты решения, может-быть свой опыт |
| Автор: ALeXandrK 5.10.2007, 20:29 | ||
Оно для любого запроса подходит. Попробуй с его помощью. Про TADOQuery вообще забыть лучше - он был создан как альтернатива TQuery и несет много лишенго. Лучше всего выполнять все запросы с помощью хранимых процедур (TADOStoredProc) и TADOCommand. |
| Автор: hug 6.10.2007, 10:18 |
| я не нашел способа поиметь доступа к датасету возвращенному AdoCommand. |
| Автор: ALeXandrK 6.10.2007, 12:16 | ||||||||||
Выдержки из Help`а:
Лучше всего для возрата данных подходит TADODataSet. Им и воспользуйся. Вообще Help хорошая штука и часто выручает, если у тебя его нет, то вот что там написано о компонентах ADO: TADOConnection
TADODataSet
TADOStoredProc
TADOCommand
Главное подчеркнул |