两个窗体的东西了。不过我开始两个都创建了。只不过必要的时候把Form2 show一下就行了。其实这样挺费资源的。
懒得弄了 就这样吧。哈哈。我还是比较懒的。
窗体如下
form1上的组件不多说了。之前的实例都是摆弄那两个东西。
来看看form2上的 TDataSource 和TDBGrid TDBGrid的DataSource属性设成ds1. TDataSource的DataSet属性设成Form1.qry1 在form2的use中要引用一下form1的单元文件。 form1的implementation部分引用form2的单元。
这样不算循环引用。虽然我也不知道这样为啥。求高人解答啊。
之后万事ok了 直接上代码
这是form 1的 名字取得有点问题 不过这都不是事儿。
unit
eg001n2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
TForm1 = class (TForm)
qry1: TQuery;
db1: TDatabase;
btnCreate: TButton;
btnExecute: TButton;
procedure btnCreateClick(Sender: TObject);
procedure btnExecuteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
implementation
uses eg004n2;
{ $R *.dfm }
procedure TForm1.btnCreateClick(Sender: TObject);
begin
try
with qry1 do
begin
Close;
SQL.Clear;
SQL.Add( ' Create Procedure selecttable as select * from 学生表 ' );
ExecSQL;
end ;
Application.MessageBox( ' 创建储存过程成功 ' , ' 提示 ' ,MB_OK);
except
Application.MessageBox( ' 创建储存过程失败 ' , ' 提示 ' ,MB_OK);
end ;
end ;
procedure TForm1.btnExecuteClick(Sender: TObject);
begin
with qry1 do
begin
Close;
SQL.Clear;
SQL.Add( ' exec selecttable ' );
Open;
end ;
form2.show;
end ;
end .
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
TForm1 = class (TForm)
qry1: TQuery;
db1: TDatabase;
btnCreate: TButton;
btnExecute: TButton;
procedure btnCreateClick(Sender: TObject);
procedure btnExecuteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
implementation
uses eg004n2;
{ $R *.dfm }
procedure TForm1.btnCreateClick(Sender: TObject);
begin
try
with qry1 do
begin
Close;
SQL.Clear;
SQL.Add( ' Create Procedure selecttable as select * from 学生表 ' );
ExecSQL;
end ;
Application.MessageBox( ' 创建储存过程成功 ' , ' 提示 ' ,MB_OK);
except
Application.MessageBox( ' 创建储存过程失败 ' , ' 提示 ' ,MB_OK);
end ;
end ;
procedure TForm1.btnExecuteClick(Sender: TObject);
begin
with qry1 do
begin
Close;
SQL.Clear;
SQL.Add( ' exec selecttable ' );
Open;
end ;
form2.show;
end ;
end .
这是form2的单元文件了
unit
eg004n2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, eg001n2;
type
TForm2 = class (TForm)
ds1: TDataSource;
dbgrd1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form2: TForm2;
implementation
{ $R *.dfm }
end .
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, eg001n2;
type
TForm2 = class (TForm)
ds1: TDataSource;
dbgrd1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form2: TForm2;
implementation
{ $R *.dfm }
end .
So nice
运行结果