Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли выполнить скрипт через ADO ? [D6, MSSQL, ]


sashak ©   (2001-12-28 15:24:00) 

Компоненты ADO в Delphi могут выполнять лишь одну команду. Можно ли выполнить набор команд(Create table, и.т.д.) т.е. скрипт сразу , а не по 1 команде?


Delirium   (2002-01-03 14:39:00) [1]

Показал бы скрипт - посмотрели бы ...


Delirium   (2002-01-03 14:37:00) [2]

>SashaK
Постоянно использую скрипты, отточенные в QueryAnalyzer и ещё ни разу ни каких проблем не возникало. В том числе всякого рода Create..., единствено "go" не пиши, вот и всё.


AlexFF   (2002-01-03 14:10:00) [3]

Читаешь Скрипт как бинарный файлик и организуешь цикл по чтению
строки по нахождении GO запускаешь Запрос.
Все равно как.


handra   (2001-12-29 10:35:00) [4]

Все работает, только "GO" из скрипта убрать надо...


kig   (2001-12-28 18:54:00) [5]

Ну go там точно не нужно...)

По поводу вываливается - как? Просто не выполняет или ...?

Дело в том, что у меня Д не стоит, развернутую справку дать по компонентам не могу, но то что батчи спокойно проходит в ADODB.Command - это точно... MS даже советует - если Вам нужны вложенные транзакции (ADO вложенные не проддерживает) - используйте батчи...

Посмотрите TADOQuery - кажется этот компонент обертка вокруг ADODB.Command...


SashaK   (2001-12-28 18:13:00) [6]

> all
Благодарю всех за ответы, однако мужики вы неправы!!!
Я бы не писал вопрос, если бы сам не пробовал возиться со всеми компонентами.Все компоненты(ADOConnection и др.) выполняют лишь 1 команду (оператор). А на скрипт они просто вываливаются на 2 -ой команде. Я уже не говорю про всякие "GO"(это понимает лишь QueryAnalyzer и означает для него окончание батча)


kig   (2001-12-28 17:48:00) [7]

Да, выразился я не очень ...так что вопрос не глупый ))

Я имел ввиду, что в данной связке (ADO - MSSQL), в ADODB.Command можно св-ве CommandText задать не одно предложение T-SQL, а много, так называемый Batch...

В Д5 обертка вокруг ADODB.Command кажется называется TADOQuery
(метод ExecSQL)
В Д6 наверно так же...


Romul   (2001-12-28 17:46:00) [8]

Используй ADOConnection.Execute(SqlText,..);
SqlText просто переменная типа String и туда записывай сколько хош команд, типа
SqlText:="Select ......";
SqlText:=SqlText+"Update....";
Только следи чтобы в запросах логика была ;))


Belov   (2001-12-28 17:45:00) [9]

CREATE TABLE Bla- bla-bla

GO

DROP TABLE Bla-Bla-Bla


SashaK   (2001-12-28 16:05:00) [10]

Извините за глупый вопрос, но как это "выталкивайте через ADO в MSSQL"?(через какие компоненты)


kig   (2001-12-28 15:36:00) [11]

А почему вы решили, что одну? И при чем здесь ADO?
Вот если бы Вы работали на IB5.x - тады ой - тогда только по одной команде.
А в той связке, что у Вас - пишите задание, как Вы его написали бы в QueryAnalyzer - выталкивайте через ADO в MSSQL.


Наверх

Титульная страница Поиск, карта сайта Написать письмо