请问如何在程序中动态创建存储过程?
我的代码如下:
var
AdoQuery: TADOQuery;
begin
AdoQuery := TADOQuery.Create(nil);
with AdoQuery do try
Connection := AdoConnct;
Close;
SQL.Clear;
SQL.Add('IF EXISTS(SELECT name FROM sysobjects WHERE type=''P'' and name=''Proc_Operator'''+
' DROP PROCEDURE Proc_Operator');
ExecSQL;
Close;
SQL.Clear;
SQL.Add('CREATE PROCEDURE Proc_Operator'+
' @EditFlag bit,@F_OperNO varchar(10),@F_OperName varchar (20),@F_Re varchar(100)'+
' AS if @EditFlag=0 Begin BEGIN TRAN Insert into T_Operator'+
' (F_OperNO,F_OperName,F_Re)'+
' Values ( @F_OperNO,@F_OperName,@F_Re)'+
' IF @@ERROR <> 0 GOTO on_error1 COMMIT TRAN RETURN (0)'+
' on_error1: ROLLBACK TRAN RETURN (1) end'+
' if @EditFlag=1 begin BEGIN TRAN'+
' update T_Operator Set'+
' F_OperName=@F_OperName,F_Re=@F_Re'+
' Where F_OperNO=@F_OperNO'+
' IF @@ERROR <> 0 GOTO on_error2 COMMIT TRAN'+
' RETURN (0) on_error2: ROLLBACK TRAN RETURN (1) end');
ExecSQL;
Application.MessageBox('创建存储过程成功!','系统提示',64);
AdoQuery.Free;
except
Application.MessageBox('创建存储过程时出错!','系统提示',16);
AdoQuery.Free;
end;
我的代码如下:
var
AdoQuery: TADOQuery;
begin
AdoQuery := TADOQuery.Create(nil);
with AdoQuery do try
Connection := AdoConnct;
Close;
SQL.Clear;
SQL.Add('IF EXISTS(SELECT name FROM sysobjects WHERE type=''P'' and name=''Proc_Operator'''+
' DROP PROCEDURE Proc_Operator');
ExecSQL;
Close;
SQL.Clear;
SQL.Add('CREATE PROCEDURE Proc_Operator'+
' @EditFlag bit,@F_OperNO varchar(10),@F_OperName varchar (20),@F_Re varchar(100)'+
' AS if @EditFlag=0 Begin BEGIN TRAN Insert into T_Operator'+
' (F_OperNO,F_OperName,F_Re)'+
' Values ( @F_OperNO,@F_OperName,@F_Re)'+
' IF @@ERROR <> 0 GOTO on_error1 COMMIT TRAN RETURN (0)'+
' on_error1: ROLLBACK TRAN RETURN (1) end'+
' if @EditFlag=1 begin BEGIN TRAN'+
' update T_Operator Set'+
' F_OperName=@F_OperName,F_Re=@F_Re'+
' Where F_OperNO=@F_OperNO'+
' IF @@ERROR <> 0 GOTO on_error2 COMMIT TRAN'+
' RETURN (0) on_error2: ROLLBACK TRAN RETURN (1) end');
ExecSQL;
Application.MessageBox('创建存储过程成功!','系统提示',64);
AdoQuery.Free;
except
Application.MessageBox('创建存储过程时出错!','系统提示',16);
AdoQuery.Free;
end;
用Sql.Add 一行一行加 看看