![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADOCommand не нравится GO, почему?
Kolan © (2007-12-10 17:12:00)Здравствуйте,
Странно
Вот такой код:
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. Странно, почему?
Kolan (2007-12-11 17:41:00) [1]> 19] Anatoly Podgoretsky © (11.12.07 16:38)
Порезал на куски проверяю.
Kolan (2007-12-11 17:41:00) [2]>
> Эта программа была оставлена в 2000 для совместимости со
> старыми версиями, там много может быть проблем, например
> с Юникодом.
> Лучше бы сделал как тебе советовали разборщик пакета по
> GO
Понял, если успею сделаю.
> [17] ANB © (11.12.07 16:36)
Блин а оно то и не работает:
В консоль вываливаются такие штуки:
1> 2> 3> 1> 2> 3> 4>
Итд. Много. Я думал это он работает, оказалось нет.
Anatoly Podgoretsky (2007-12-11 16:38:00) [3]> Kolan (11.12.2007 15:59:14) [14]
Эта программа была оставлена в 2000 для совместимости со старыми версиями, там много может быть проблем, например с Юникодом.
Лучше бы сделал как тебе советовали разборщик пакета по GO
Kolan (2007-12-11 16:37:00) [4]> Кстати, пример для кмд.экзе для ИСКЛ не прокатывает.
разница в чем?
ANB (2007-12-11 16:36:00) [5]
> http://www.delphimaster.ru/cgi-bin/forum.pl?n=18&id=1197376680
>
> :)
Та дома где то пример валяется. Я как раз тоже через ИСКЛ скрипты гонял.
Кстати, пример для кмд.экзе для ИСКЛ не прокатывает.
Kolan (2007-12-11 16:32:00) [6]>
>
> [8] ANB © (10.12.07 18:54)
>
> искл будет лучше всего. особливо если вывод перехватить.
http://www.delphimaster.ru/cgi-bin/forum.pl?n=18&id=1197376680
:)
ANB (2007-12-11 16:28:00) [7]
> Это самое плохое, что можно было сделать.
Я бы не сказал. ИСКЛ умеет несколько побольше АДО и эти фичи замучаешься ручками обрабатывать. Некоторые скрипты, написанные под штатные скриптогонялки, быстрее в них же и выполнять.
Kolan (2007-12-11 15:59:00) [8]> Это самое плохое, что можно было сделать.
Почему?
Anatoly Podgoretsky (2007-12-11 15:54:00) [9]Это самое плохое, что можно было сделать.
Kolan (2007-12-11 14:21:00) [10]Все, заюзал isql. Всех благодарю.
Павел Калугин (2007-12-11 13:41:00) [11]как сказано выше go это разделитель команд.
Если мне не изменяет память, то что отдается в ado исполняется процедурой sp_executesql. Следовательно надо смотреть ее описание.
Я данный вопрос обошел проще.
грузил скрипт в stringlist и сам рубил его на комманды по go
ANB (2007-12-10 18:59:00) [12]
> Не мне наоборот запустить потихому, чтобы отработало и се…
> Понял так наверно и сделаю.
Если не перехватить, то как раз потихоньку не получится. будет черный экран мелькать
Kolan (2007-12-10 18:57:00) [13]>
> искл будет лучше всего. особливо если вывод перехватить.
Не мне наоборот запустить потихому, чтобы отработало и се Понял так наверно и сделаю.
ANB (2007-12-10 18:54:00) [14]
> Ясно. Подумаю, мож проше утилиткой isql сделать…
искл будет лучше всего. особливо если вывод перехватить.
заодно и приедет все, что надо
Kolan (2007-12-10 18:46:00) [15]> Го это разделитель команд. И выкидывать/комментарий его
> низзя. Теж написали надо искать го в тексте, пилить скрипт
> на куски и кусками выполнять.
Ясно. Подумаю, мож проше утилиткой isql сделать
ANB (2007-12-10 18:21:00) [16]Го - это разделитель команд. И выкидывать/комментарий его низзя. Теж написали - надо искать го в тексте, пилить скрипт на куски и кусками выполнять.
Kolan (2007-12-10 18:11:00) [17]> и где разделители команд?
> [1] DiamondShark © (10.12.07 17:21)
> Потому что ГО это не команда SQL. Это разделитель пачек
> команд для isql
:)
> это чево такое?
Это квери аналайзером выгружено.
Правильный_Вася (2007-12-10 18:09:00) [18]
> ) ON [PRIMARY]
это чево такое?
и где разделители команд?
stone (2007-12-10 17:32:00) [19]А на сервак что идет? Посмотри в профайлере.
Kolan (2007-12-10 17:27:00) [20]Ясно. А 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