Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с MSSQL. ADO+SDAC. Запрос не выполняется 
:(
    Опции темы
hug
Дата 5.10.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Добрый День. Проблема такого:
есть немаленький запросик для бухглатерской формы:
Последнее к чему я пришел это разбивка его выполнения из под Делфей на 2 части

1 часть

Код


set dateformat dmy  if object_id(...) is not null drop table TempTable
Create table  TempTable (.........)
INSERT INTO TempTable (.........) 
exec Proc ......



т.е. идет создание временной таблицы (к сожалению не #) и вставка туда записей.
Proc - хранимая процедура, которая так же не так проста (создание временных таблиц\индексов на них. куча логики и прочее)
Пытаюсь выполнить эту вставку при помощи ADOCommand.

2 часть
Код

select ..... From TempTable 
drop table temp table


Select выполняю TMSQuery из SDAC


1) если Proc возвращает немного записей <1000 то все идет ОК. если больше то выполнение запроса не идет. Delphi как будто замирает и все. Из под MsSql запрос выполняется великолепно. Из под делфи ADOcommand не может выполнится. Подскажите пожалуйста с чем этим может быть связано?

2) Вначале весь запрос шел в одной сессии из TMSQuery. Использовал #TempTable. Но при большом кол-ве записей запрос также не выполнялся из под Делфи. Из под среды MS SQL все выполняется прекрасно

3)Пробовал ADOQuery. На большом числе записей запрос также не выполнялся

4) Какие есть еще варианты выполнегние большого трудного запроса из под Делфи. Средства ADO\SDAC. Может все запихнуть в ADOCommand. Или оно только для DDL а не для селекта.

Вообщем запарился я уже дружить делфи и mssql. повторяюсь из под среды скуля запрос выполнятся отлично и за приемлимое време(даже большое кол-во записей). Бухгалтерия простаивает. Подскажите пожалуйста варианты решения, может-быть свой опыт
PM MAIL   Вверх
ALeXandrK
Дата 5.10.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Цитата

Может все запихнуть в ADOCommand. Или оно только для DDL а не для селекта.

Оно для любого запроса подходит. Попробуй с его помощью.
Про  TADOQuery вообще забыть лучше - он был создан как альтернатива
TQuery и несет много лишенго.

Лучше всего выполнять все запросы с помощью хранимых процедур (TADOStoredProc) и
TADOCommand.


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
hug
Дата 6.10.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



я не нашел способа поиметь доступа к датасету возвращенному AdoCommand.

PM MAIL   Вверх
ALeXandrK
Дата 6.10.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Выдержки из Help`а:
Цитата

A simple component for executing commands (SQL statements that do not return result sets); TADOCommand can be used with a supporting dataset component, or retrieve a dataset from a table; It can connect directly to a data store or use a TADOConnection component.  


Лучше всего для возрата данных подходит TADODataSet. Им и воспользуйся.

Вообще Help хорошая штука и часто выручает, если у тебя его нет, то вот что там написано о компонентах ADO:

TADOConnection
Цитата

A database connection component that establishes a connection with an ADO data store; multiple ADO dataset and command components can share this connection to execute commands, retrieve data, and operate on metadata


TADODataSet
Цитата

The primary dataset for retrieving and operating on data; TADODataSet can retrieve data from a single or multiple tables; can connect directly to a data store or use a TADOConnection component.


TADOStoredProc
Цитата

A stored procedure-type dataset for executing stored procedures; TADOStoredProc executes stored procedures that may or may not retrieve data. It can connect directly to a data store or use a TADOConnection component.   


TADOCommand 
Цитата

A simple component for executing commands (SQL statements that do not return result sets); TADOCommand can be used with a supporting dataset component, or retrieve a dataset from a table; It can connect directly to a data store or use a TADOConnection component.  


Главное подчеркнул smile 

Это сообщение отредактировал(а) ALeXandrK - 6.10.2007, 12:18


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.