SQL delphi ado,SQL批处理执行

时间:2010-11-07 10:46:03

标签: sql delphi ado

由于SQL Server没有为管理工作室自动生成的脚本的简单批处理命令行执行程序,因此我创建了一个。

当delphi ado语法和SQL Server语法不一致时会产生问题(但它的相同之处)。

那么如何,go我替换了;

现在当我宣布存储过程改变时,我碰到了一堵砖墙。

我正在运行的脚本是:

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

我得到的错误是:

  

参数来自错误的类型,   超出范围或与之碰撞   另一个。

(我的免费翻译)

问题:

  • 为什么会这样?
  • 我该怎么做才能改变这个?
  • 是否有另一个基于udl的程序来解析SQL脚本?

感谢。

编辑:要求使用udl文件登录数据库。

可能是德尔福遇到了@?

的问题

3 个答案:

答案 0 :(得分:3)

  

由于SQL Server没有   简单的批处理命令行执行程序   自动生成的脚本   来自管理工作室,我创建了一个。

你知道SQLCMD ??看起来像是一个命令行实用程序来执行SQL脚本......还有:SQLCMD实用程序还有许多其他增强功能,这些功能超出了SSMS中的T-SQL脚本所能做的。

同时退房:

答案 1 :(得分:1)

不确定上面的SQL示例,但存储过程实际上是否有任何参数,或者您是否正在调用@param体内的变量?通常的语法是:

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

MSDN - Alter Procedure

答案 2 :(得分:0)

删除了该组件并从

更改了代码

ado.open;

ado.execute; //或类似的东西

解决了它。