教程:使用 InterBase Express 访问数据库(二)

1. 添加数据模块(IBX 通用教程)

本节将创建一个数据模块(TDataModule),这是一种包含应用程序使用的非可视组件的表单。

以下是完全配置好的 TDataModule 的视图:

创建 TDataModule 后,您可以在其他表单中使用这个数据模块。

2. 添加 TDataModule

要将数据模块添加到项目中,请在项目管理器中右键单击项目名称,然后点击“添加新建 > 其他...”以显示“新建项目”对话框。

选择“数据模块”并点击确定。

选择新的 TDataModule。将其 Name 属性设置为 "DmEmployee"。将 OldCreateOrder 设置为 true。

保存新单元:

  • 对于 Delphi,将单元保存为 DmCSDemo.pas。

现在向新的 TDataModule 添加组件。

3. 添加数据库和事务

添加两个基本的数据库组件:TIBDatabase 和 TIBTransaction。
就像在“查看不同表格”部分一样,将 TIBDatabase 拖到数据模块上。双击新的 TIBDatabase 以显示数据库组件编辑器或连接代理组件编辑器。填写对话框然后点击确定来设置 TIBDatabase 的属性:

注意:如果您像本示例中那样在应用程序中嵌入密码,那么任何人都可以在不登录的情况下访问此数据库。

通过将 Name 设置为 "EmployeeDatabase" 并设置 Connected 为 true 来完成 TIBDatabase 的配置。
向 TDataModule 添加 TIBTransaction。将 TIBDatabase 的 DefaultTransaction 属性设置为 "IBTransaction1"。

4. 添加存储过程

向数据库添加两个 TIBStoredProc 组件以使用存储过程。

  • 在模块上放置一个 TIBStoredProc。将 Name 设置为 "ShipOrderProc"。从下拉菜单中将 Database 设置为 "EmployeeDatabase"。从下拉菜单中将 StoredProcName 设置为 "SHIP_ORDER"。SHIP_ORDER 是 EMPLOYEE 数据库中的存储过程之一。
  • 向模块添加另一个 TIBStoredProc。将 Name 设置为 "DeleteEmployeeProc"。从下拉菜单中将 Database 设置为 "EmployeeDatabase"。从下拉菜单中将 StoredProcName 设置为 "DELETE_EMPLOYEE"。

5. 添加数据集

向模块添加五个 TIBDataSet 组件。每个 TIBDataSet 以不同的方式访问 EMPLOYEE 数据库中的不同数据库表。

  • "EmployeeLookup" TIBDataSet
    • 将 Transaction 属性设置为 "IBTransaction1"。这可能已经设置好了。
    • 通过使用下拉菜单将 Database 属性设置为 "EmployeeDatabase" 来将此 TIBDataSet 连接到数据库。
    • 将 Name 属性设置为 "EmployeeLookup"。
    • 右键单击 "EmployeeLookup" TIBDataSet 并选择“编辑 SQL”。
    • 将 CommandText 属性设置为从 EMPLOYEE 表中选择所有记录。
    • 双击 TIBDataSet 组件以显示字段编辑器对话框。右键单击空白列表并从上下文菜单中选择“添加所有字段”。关闭字段编辑器。
    • 右键单击 "EmployeeLookup" TIBDataSet 并选择数据集编辑器。
    • 从键字段列中选择 "EMP_NO",然后点击生成 SQL 按钮。
    • 点击确定按钮关闭向导。

您将使用此组件来访问数据库中的 EMPLOYEE 表。

  • "SalesTable" TIBDataSet
    • 将 Transaction 属性设置为 "IBTransaction1"。
    • 使用下拉菜单将 Database 属性设置为 "EmployeeDatabase"。
    • 将 Name 属性设置为 "SalesTable"。
    • 右键单击 "SalesTable" TIBDataSet 并选择“编辑 SQL”。
    • 将 CommandText 属性设置为从 SALES 表中选择所有记录。
    • 双击 TIBDataSet 组件以显示字段编辑器对话框。右键单击空白列表并从上下文菜单中选择“添加所有字段”。关闭字段编辑器。
    • 右键单击 "SalesTable" TIBDataSet 并选择数据集编辑器。
    • 从键字段列中选择 "PO_NUMBER",然后点击生成 SQL 按钮。
    • 点击确定按钮关闭向导。

您将使用此组件来访问数据库中的 SALES 表。

  • "CustomerTable" TIBDataSet
    • 将 Transaction 属性设置为 "IBTransaction1"。
    • 使用下拉菜单将 Database 属性设置为 "EmployeeDatabase"。
    • 将 Name 属性设置为 "CustomerTable"。
    • 右键单击 "CustomerTable" TIBDataSet 并选择“编辑 SQL”。
    • 将 CommandText 属性设置为从 CUSTOMER 表中选择所有记录,条件是 CUST_NO = :CUST_NO。
    • 双击 TIBDataSet 组件以显示字段编辑器对话框。右键单击空白列表并从上下文菜单中选择“添加所有字段”。关闭字段编辑器。
    • 右键单击 "CustomerTable" TIBDataSet 并选择数据集编辑器。
    • 从键字段列中选择 "CUST_NO",然后点击生成 SQL 按钮。
    • 点击确定按钮关闭向导。

您将使用此组件来访问数据库中的 CUSTOMER 表。

  • "EmployeeTable" TIBDataSet
    • 将 Transaction 属性设置为 "IBTransaction1"。
    • 使用下拉菜单将 Database 属性设置为 "EmployeeDatabase"。
    • 将 Name 属性设置为 "EmployeeTable"。
    • 右键单击 "EmployeeTable" TIBDataSet 并选择“编辑 SQL”。
    • 将 CommandText 属性设置为从 EMPLOYEE 表中选择所有记录。
    • 右键单击 "EmployeeTable" TIBDataSet 并选择数据集编辑器。
    • 从键字段列中选择 "EMP_NO",然后点击生成 SQL 按钮。
    • 点击确定按钮关闭向导。

您也将使用此组件来访问数据库中的 EMPLOYEE 表。

  • "SalaryHistoryTable" TIBDataSet
    • 将 Transaction 属性设置为 "IBTransaction1"。
    • 使用下拉菜单将 Database 属性设置为 "EmployeeDatabase"。
    • 将 Name 属性设置为 "SalaryHistoryTable"。
    • 右键单击 "SalaryHistoryTable" TIBDataSet 并选择“编辑 SQL"。
    • 将 CommandText 属性设置为从 SALARY_HISTORY 表中选择所有记录,条件是 EMP_NO=:EMP_NO。
    • 右键单击 "SalaryHistoryTable" TIBDataSet 并选择数据集编辑器。
    • 从键字段列中选择 "EMP_NO",然后点击生成 SQL 按钮。
    • 点击确定按钮关闭向导。

您也将使用此组件来访问数据库中的 SALARY_HISTORY 表。

6. 添加数据源

向模块添加四个 TDataSource 组件。TDataSource 与上述 TIBDataSet 相关联。TDataSource 组件作为 TIBDataSet 和数据感知控件之间的接口。

  • "SalesSource" TDataSource。使用下拉菜单将 TDataSource 的 DataSet 设置为 "SalesTable"。将 Name 属性设置为 "SalesSource"。
  • "CustomerSource" TDataSource。使用下拉菜单将 TDataSource 的 DataSet 设置为 "CustomerTable"。将 Name 属性设置为 "CustomerSource"。
  • "EmployeeSource" TDataSource。使用下拉菜单将 TDataSource 的 DataSet 设置为 "EmployeeTable"。将 Name 属性设置为 "EmployeeSource"。
  • "SalaryHistorySource" TDataSource。使用下拉菜单将 TDataSource 的 DataSet 设置为 "SalaryHistoryTable"。将 Name 属性设置为 "SalaryHistorySource"。
  • 一些 TIBDataSet 需要链接到 TDataSource 以建立与另一个表的关系。
    • 选择 "CustomerTable" TIBDataSet。使用下拉菜单将 DataSource 设置为 "SalesSource"。
    • 选择 "SalaryHistoryTable" TIBDataSet。使用下拉菜单将 DataSource 设置为 "EmployeeSource"。

7. 添加事件处理程序

构建 TDataModule 的最后一步是添加几个事件处理程序。

选择 TDataModule。在对象检查器中,点击事件选项卡。双击 OnCreate 事件以生成事件的框架代码。为这个事件添加以下代码:

procedure TDmEmployee.DmEmployeeCreate(Sender: TObject);
begin
  EmployeeDatabase.Open;
end;

选择 "EmployeeTable" TIBDataSet。在事件选项卡中,双击 AfterPost 事件。使用以下代码作为此处理程序:

procedure TDmEmployee.EmployeeTableAfterPost(DataSet: TDataSet);
begin
  { 员工工资的变化会触发工资历史的变化,
    因此如果该表是打开的,现在需要刷新 }
  with SalaryHistoryTable do if Active then Refresh;
end;

选择 "EmployeeTable" TIBDataSet。在事件选项卡中,双击 BeforeDelete 事件。使用以下代码作为此处理程序:

procedure TDmEmployee.EmployeeTableBeforeDelete(DataSet: TDataSet);
begin
  { 将当前员工的 ID 分配给存储过程的参数 }
  DeleteEmployeeProc.Params.ParamValues['EMP_NUM'] := EmployeeTable['EMP_NO'];
  DeleteEmployeeProc.ExecProc;          { 触发存储过程 }
  EmployeeTable.Refresh;                { 刷新数据 }
  { 阻止 EmployeeTable 删除,因为存储过程已经完成了工作 }
  Abort;
end;


这完成了数据模块的构建,您将在下一节中使用它。在继续之前,请检查此模块的代码。请注意,已经自动向数据模块类中添加了许多对象,这些对象代表表字段,例如 SalesTablePO_NUMBER。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caridle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值