unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DB, DBTables; type TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Label1: TLabel; Memo1: TMemo; Query1: TQuery; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses unit2; //包含单元2 {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); //创建存储过程 begin with Query1 do begin close; SQL.clear; SQL.Add('create procedure selecttable as select * from 教师表'); ExecSQL; end; end; procedure TForm1.BitBtn2Click(Sender: TObject);//执行存储过程 begin with Query1 do begin close; SQL.Clear; SQL.Add('exec selecttable'); open; end; Form2.DataSource1.DataSet:=Query1; Form2.show; end; procedure TForm1.FormCreate(Sender: TObject); begin Query1.DatabaseName:='DB2010'; //Database1.Params.Add('Username=sa'); //Database1.Params.Add('password='); end; end.
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids; type TForm2 = class(TForm) DBGrid1: TDBGrid; DataSource1: TDataSource; private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} end.
Create Procedure 语法格式:
--------------------------------------------------
CREATE PROC[EDURE] procedure_name [;number]
[{@parameter data_type}
[VARYING] [=default] [OUTPUT]
],[,...n]
[FOR REPLICATION]
AS sql_statement [...n]
---------------------------------------------------
procedure_name 为创建的存储过程名称,该名称在数据库中必须是惟一的。
;number 是可选的整数,用来对同名的过程分组,当删除存储过程时,如果不指定该选项,会将该组存储过程全部删除。
@parameter 为存储过程中的参数,在创建存储过程时也可以不指定参数。
data_type 为参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。
VARYING 只适用于游标参数,指定为输出参数支持的结果集。
default 为参数的默认值。
OUTPUT 表明参数是返回参数。使用OUTPUT 参数可将信息返回给调用过程。
,...n 表示各个参数,在一个存储过程中最多可以使用2100个参数。
FOR REPLICATION 指定不能在订阅服务器上执行为复制创建的存储过程。使用FOR REPLICATION选项创建的存储过程可用作存储过程筛选,且只能在复制过程中执行。
AS sql_statement 指定要执行的SQL语句。