Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

TADOCommand не нравится GO, почему?   Найти похожие ветки 

 
Kolan ©   (2007-12-10 17:12) [0]

Здравствуйте,
 Странно

Вот такой код:
procedure TDataAccessFacade.RunScript(ASQL: TStrings);
var
 Query: TADOCommand;
begin
 if Assigned(ASQL) then
 begin
   Query := TADOCommand.Create(nil);
   try
     with Query do
     begin
       Connection := FDBConnection;
       CommandText := ASQL.Text;
       Execute;
     end;
   finally
     Query.Free;
   end;
 end;
end;


Вот такой скрипт:
if exists (select * from dbo.sysobjects where id = object_id(N"[dbo].[FK_T_TALON_T_SL_BRIG]") and OBJECTPROPERTY(id, N"IsForeignKey") = 1)
ALTER TABLE [dbo].[T_TALON] DROP CONSTRAINT FK_T_TALON_T_SL_BRIG
GO


Говорит Incorrect syntax near GO.  Странно, почему?


 
DiamondShark ©   (2007-12-10 17:21) [1]

Потому что ГО -- это не команда SQL. Это разделитель пачек команд для isql

если ты хочешь сам выполнить скрипт, предназначенный для Query Analizer или для isql, то разбирай файл, и сам режь на куски по ГО.


 
Kolan ©   (2007-12-10 17:27) [2]

Ясно. А Create же должен катить?

Закоментил все ГОУ.

Теперь Incorrect syntax near keyword CREATE.
Строчку не сообщает. В Query Analizer  скрипт работает.


if exists (select * from dbo.sysobjects where id = object_id(N"[dbo].[T_TALON]") and OBJECTPROPERTY(id, N"IsUserTable") = 1)
drop table [dbo].[T_TALON]
--GO

CREATE TABLE [dbo].[T_SL_BRIG] (
[ID] [int] NOT NULL ,
[STATION_ID] [int] NULL ,
[SOST] [varchar] (250) COLLATE Cyrillic_General_CI_AS NULL ,
[NAME] [varchar] (100) COLLATE Cyrillic_General_CI_AS NULL ,
[ID_DOCT] [int] NULL ,
[ID_FEL] [int] NULL ,
[ID_VOD] [int] NULL ,
[ID_SAN] [int] NULL
) ON [PRIMARY]
--GO


 
stone ©   (2007-12-10 17:32) [3]

А на сервак что идет? Посмотри в профайлере.


 
Правильный_Вася   (2007-12-10 18:09) [4]


> ) ON [PRIMARY]

это чево такое?
и где разделители команд?


 
Kolan ©   (2007-12-10 18:11) [5]

> и где разделители команд?


> [1] DiamondShark ©   (10.12.07 17:21)
> Потому что ГО —— это не команда SQL. Это разделитель пачек
> команд для isql

:)


> это чево такое?

Это квери аналайзером выгружено.


 
ANB ©   (2007-12-10 18:21) [6]

Го - это разделитель команд. И выкидывать/комментарий его низзя. Теж написали - надо искать го в тексте, пилить скрипт на куски и кусками выполнять.


 
Kolan ©   (2007-12-10 18:46) [7]

> Го — это разделитель команд. И выкидывать/комментарий его
> низзя. Теж написали — надо искать го в тексте, пилить скрипт
> на куски и кусками выполнять.

Ясно. Подумаю, мож проше утилиткой isql сделать&#133


 
ANB ©   (2007-12-10 18:54) [8]


> Ясно. Подумаю, мож проше утилиткой isql сделать…

искл будет лучше всего. особливо если вывод перехватить.
заодно и приедет все, что надо


 
Kolan ©   (2007-12-10 18:57) [9]

>
> искл будет лучше всего. особливо если вывод перехватить.

Не мне наоборот запустить потихому, чтобы отработало и се&#133 Понял так наверно и сделаю.


 
ANB ©   (2007-12-10 18:59) [10]


> Не мне наоборот запустить потихому, чтобы отработало и се…
> Понял так наверно и сделаю.

Если не перехватить, то как раз потихоньку не получится. будет черный экран мелькать


 
Павел Калугин ©   (2007-12-11 13:41) [11]

как сказано выше go это разделитель команд.
Если мне не изменяет память, то что отдается в ado исполняется процедурой sp_executesql. Следовательно надо смотреть ее описание.

Я данный вопрос обошел проще.
грузил скрипт в stringlist и сам рубил его на комманды по go


 
Kolan ©   (2007-12-11 14:21) [12]

Все, заюзал isql. Всех благодарю.


 
Anatoly Podgoretsky ©   (2007-12-11 15:54) [13]

Это самое плохое, что можно было сделать.


 
Kolan ©   (2007-12-11 15:59) [14]

> Это самое плохое, что можно было сделать.

Почему?


 
ANB ©   (2007-12-11 16:28) [15]


> Это самое плохое, что можно было сделать.

Я бы не сказал. ИСКЛ умеет несколько побольше АДО и эти фичи замучаешься ручками обрабатывать. Некоторые скрипты, написанные под штатные скриптогонялки, быстрее в них же и выполнять.


 
Kolan ©   (2007-12-11 16:32) [16]

>
>
> [8] ANB ©   (10.12.07 18:54)
>
> искл будет лучше всего. особливо если вывод перехватить.


http://delphimaster.net/view/2-1197376680/

:)


 
ANB ©   (2007-12-11 16:36) [17]


> http://delphimaster.net/view/2-1197376680/
>
> :)

Та дома где то пример валяется. Я как раз тоже через ИСКЛ скрипты гонял.
Кстати, пример для кмд.экзе для ИСКЛ не прокатывает.


 
Kolan ©   (2007-12-11 16:37) [18]

> Кстати, пример для кмд.экзе для ИСКЛ не прокатывает.

разница в чем?


 
Anatoly Podgoretsky ©   (2007-12-11 16:38) [19]

> Kolan  (11.12.2007 15:59:14)  [14]

Эта программа была оставлена в 2000 для совместимости со старыми версиями, там много может быть проблем, например с Юникодом.
Лучше бы сделал как тебе советовали разборщик пакета по GO


 
Kolan ©   (2007-12-11 17:41) [20]

>
> Эта программа была оставлена в 2000 для совместимости со
> старыми версиями, там много может быть проблем, например
> с Юникодом.
> Лучше бы сделал как тебе советовали разборщик пакета по
> GO

Понял, если успею сделаю.


> [17] ANB ©   (11.12.07 16:36)

Блин а оно то и не работает:

В консоль вываливаются такие штуки:
1> 2> 3> 1> 2> 3> 4>

Итд. Много. Я думал это он работает, оказалось — нет.


 
Kolan ©   (2007-12-11 17:41) [21]

> 19] Anatoly Podgoretsky ©   (11.12.07 16:38)

Порезал на куски — проверяю.



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.027 c
2-1208780311
jorgunited
2008-04-21 16:18
2008.05.18
выборка во время транзакции


2-1208518214
lewka-serdceed
2008-04-18 15:30
2008.05.18
Не понятные символы в строке


15-1206900897
DVM
2008-03-30 22:14
2008.05.18
2 копии Win на одном компьютере и перевод времени.


2-1208615940
ply
2008-04-19 18:39
2008.05.18
как запретить изменение размера окна?


2-1208333700
webpauk
2008-04-16 12:15
2008.05.18
MdiChild (Close, Count)