当前位置:学学看123知识中心电脑教学数据库教程使用视图 - 尝试二» 正文

使用视图 - 尝试二

[06-11 18:16:36]   来源:http://www.xxk123.com  数据库教程   阅读:8486

导读: <略去的代码> 如果在此时此刻一切正常则用 SQLCommit() 函数提交事务处理。如果提交失败则回滚以前的所有操作。 * 一切正常因此提交事务处理。 If SQLCommit(ThisForm.nHandle) < 0 ThisForm.ShowError * 回滚事务处理 = SQLRollback(ThisForm.nHandle) Else <略去的代码> 如果用户没有添加新成员,,是代码稍稍要简单一些。仍然要启动事务处理。首先保存 Member 表中的信息然后保存 Adult 和 Juvenile 表中的信息。如果一切正常则提交事务处理。否则回滚。 Else Wait Window "保存成员信息..." NoWait * 开始事务处理 = SQLSetProp(ThisForm.nHandle, "Transactions", 2) * 保存信息到 member 表 Select vMemberTable I

使用视图 - 尝试二,标签:sql数据库教程,access数据库教程,http://www.xxk123.com
<略去的代码>

如果在此时此刻一切正常则用 SQLCommit() 函数提交事务处理。如果提交失败则回滚以前的所有操作。
  * 一切正常因此提交事务处理。
  If SQLCommit(ThisForm.nHandle) < 0
    ThisForm.ShowError
    * 回滚事务处理
    = SQLRollback(ThisForm.nHandle)
  Else
<略去的代码>

如果用户没有添加新成员,,是代码稍稍要简单一些。仍然要启动事务处理。首先保存 Member 表中的信息然后保存 Adult 和 Juvenile 表中的信息。如果一切正常则提交事务处理。否则回滚。
Else
  Wait Window "保存成员信息..." NoWait

  * 开始事务处理
  = SQLSetProp(ThisForm.nHandle, "Transactions", 2)

  * 保存信息到 member 表
  Select vMemberTable
  If Not TableUpdate()
<略去的代码>

  * 保存信息到 adult 表
  Select vAdultTable
  If Not TableUpdate()
<略去的代码>

* 一切正常因此提交事务处理。
  If SQLCommit(ThisForm.nHandle) < 0
    ThisForm.ShowError
    * 回滚事务处理
    = SQLRollback(ThisForm.nHandle)
  Else
    = MessageBox("该成员信息已经 " + ;
                 "保存。", MB_ICONINFORMATION)
  Endif
Endif

删除一个成员

每一个表使用一个视图不仅允许解决添加新成员的问题,也解决了不能删除成员的问题。当用户按下 Delete 按钮时启动一个事务处理。Adult 或 Juvenile 表中的成员记录首先被删除。Delete 应用于视图并且 TableUpdate() 发送它到 SQL Server。如果 TableUpdate() 未成功则回滚事务处理。
* 在视图连接上开始一个事务处理
= SQLSetProp(ThisForm.nHandle, "Transactions", 2)

If RecCount("vJuvenileTable") = 0
  Select vAdultTable
  Delete
Else
  Select vJuvenileTable
  Delete
Endif  
If Not TableUpdate()
  ThisForm.ShowError
  * 回滚事务处理
  = SQLRollBack(ThisForm.nHandle)
<略去的代码>

如果相应的 Adult 或 Juvenile 记录已经删除,就可以删除 Member 表的记录。Delete 也有可能失败,例如该成员还有未结清的借书。在这种情况下回滚事务处理且 Adult 或 Juvenile 记录放回到相关的表中。
Select vMemberTable
Delete
If Not TableUpdate()
  ThisForm.ShowError
  * 回滚事务处理
  = SQLRollBack(ThisForm.nHandle)
<略去的代码>

如果两个 TableUpdate() 都成功了则用 SQLCommit() 函数提交事务处理。如果未成功则回滚事务处理。

问题

第一个版本的表单中的三个问题现已解决了两个。可以添加新成员和删除一个成员了。如果违犯了参照完整性删除将会失败。例如,假设你想删除一个没有相关 juveniles 但有未结清的借书的成员时。你会看到图 5 的错误信息。
图 5  删除 Loans 成员时的错误信息

因此,语无伦次的错误信息的问题任然存在。你可以编写代码来分解错误信息并寻找特定的短语。然后将 SQL Server 信息转换为用户可以理解的内容。这是很大的工作量并要求非常熟悉 SQL Server 的错误信息。它也使转换你的应用程序到另一个后端(如 Oracle)变得非常困难。

上一页  [1] [2] 


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
《使用视图 - 尝试二》相关文章

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10