Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.045 c
6-1186380216
Салат
2007-08-06 10:03
2008.05.18
IdTCPServer,Threads


2-1208434018
slashka
2008-04-17 16:06
2008.05.18
Многострочный TListView


11-1188735091
Виктор007
2007-09-02 16:11
2008.05.18
CollapseProcTable0.inc


3-1197064145
wipr
2007-12-08 00:49
2008.05.18
Проблема с открытием pFIBDataSet по FB 1.5.1


2-1208614889
Лунатик
2008-04-19 18:21
2008.05.18
Анимация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский