从 Delphi 代码在 Firebird 中创建存储过程

Create a stored procedure in Firebird from Delphi code

如何从 Delphi XE3 代码在 Firebird 中创建存储过程?我想通过 Delphi 代码添加一个存储过程。我正在使用 TSQLQuery.ExecSQL() 但它在第 9 行第 10 列抛出错误。

CREATE PROCEDURE GET_BRANCH_ID (
  EMPID Integer)
 returns (
  EMPBRANCHID Integer)
AS
declare variable EmpBrch Integer;
Begin
 select EMP_BRANCH_ID from EMPLOYEE where EMPLOYEE_ID= :EMPID
   into :EmpBrch;
   EMPBRANCHID = :EmpBrch;
   SUSPEND;
End

Delphi 我使用的代码是:

with SQLQueryExc do
begin
  close;
  SQL.clear;
  SQL.Add(SPString.Text);
  ExecSQL();
End

如有任何帮助,我们将不胜感激。谢谢

问题是 ; 终止了语句,但您正试图执行其中包含 ; 的语句。

您需要将终止符更改为其他内容。

SET TERM !! ;
CREATE PROCEDURE GET_BRANCH_ID (
  EMPID Integer)
 returns (
  EMPBRANCHID Integer)
AS
declare variable EmpBrch Integer;
Begin
 select EMP_BRANCH_ID from EMPLOYEE where EMPLOYEE_ID= :EMPID
   into :EmpBrch;
   EMPBRANCHID = :EmpBrch;
   SUSPEND;
End !!
SET TERM ; !!

务必确保在完成后将终止符改回 ;

参见:http://www.firebirdsql.org/manual/isql-terminator.html

ParamCheck:=False;

对我有用。