两个窗体的东西了。不过我开始两个都创建了。只不过必要的时候把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.
这是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.
So nice
运行结果