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语句。

posted on 2011-04-10 17:44  巅枫  阅读(524)  评论(0编辑  收藏  举报