SQL Delphi Ado, SQL пакетного выполнения - PullRequest
1 голос
/ 07 ноября 2010

Поскольку SQL Server не имеет простого исполнителя пакетной командной строки для сценариев, которые автоматически генерируются из среды управления, я создал один.

Проблема возникает, когда синтаксис delphi ado и синтаксис SQL Server не совпадают (НО ЕГО ЖЕ).

Ну как-нибудь, go я заменил;

Теперь, когда я объявляю об изменении хранимой процедуры, я бью кирпичную стену.

Сценарий, который я запускаю:

ALTER Procedure [dbo].[procName]
as
Declare @param int

и ошибка, которую я получаю:

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

(мой бесплатный перевод)

вопросов:

  • почему это происходит?
  • что я могу сделать, чтобы изменить это?
  • существует ли другая программа на основе udl, которая анализирует сценарии SQL?

спасибо.

edit: требуется вход в базу данных с файлом udl.

Может быть, у Delphi проблемы с @?

Ответы [ 3 ]

3 голосов
/ 07 ноября 2010

Поскольку в SQL Server нет простого исполнителя пакетной командной строки для сценариев, автоматически генерируемых из среды управления, я создал его.

Вам известно о SQLCMD ??Похоже, утилита командной строки для выполнения сценариев SQL для меня ... также: утилита SQLCMD имеет ряд дополнительных улучшений, которые выходят за рамки возможностей сценариев T-SQL в SSMS.

Также ознакомьтесь:

1 голос
/ 09 ноября 2010

Не уверен насчет приведенного выше примера SQL, но есть ли у хранимой процедуры какие-либо параметры или вы вызываете переменную внутри тела @param? Обычный синтаксис:

ALTER Procedure [dbo].[procName]
(<@params here>)
AS
<body + variables here>

MSDN - Изменить процедуру

0 голосов
/ 10 ноября 2010

удалил компонент и измени код с

ado.open;

до

ado.execute; // или что-то в этом роде

решил это.

...