当前位置:学学看123知识中心电脑教学数据库教程使用 SQL pass-through» 正文

使用 SQL pass-through

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

导读: " adult_member_no " + ; "From member, adult, juvenile " + ; "Where member.member_no = juvenile.member_no " + ; " And adult.member_no = " + ; " juvenile.adult_member_no " + ; " And member.member_no = " + ; " AllTrim(ThisForm.txtMemberID.Value) If SQLExec(ThisForm.nHandle, lcSQL, "c_member") < 0<略去的代码>如果 c_member 游标为空则没有输入的 ID 成员存在。否则所有成员信息都在游标中。

使用 SQL pass-through,标签:sql数据库教程,access数据库教程,http://www.xxk123.com
        "  adult_member_no " + ;
        "From member, adult, juvenile " + ;
        "Where member.member_no = juvenile.member_no " + ;
        "  And adult.member_no = " + ;
        "    juvenile.adult_member_no " + ;
        "  And member.member_no = " + ;
        "    AllTrim(ThisForm.txtMemberID.Value)
  
If SQLExec(ThisForm.nHandle, lcSQL, "c_member") < 0
<略去的代码>

如果 c_member 游标为空则没有输入的 ID 成员存在。否则所有成员信息都在游标中。游标设置了行缓存,且表单控件用游标中的成员信息填充。
Union 允许你发送一个 Select 到服务器并获取该成员的所有信息。在早期的示例中,需要对两个或三个视图进行重查询(requery) 而不是象这里一样只需要一个 SQLExec()。注意,如果你使用视图设计器,你不能创建一个带 Union 的远程视图。但你可以用 Create SQL View 命令来创建这种视图。

添加一个成人

当用户按下 Add 按钮时,一条空白的记录添加到 c_member 游标中。这与早期的视图示例不同。
Select c_member
= TableRevert()
Append Blank

仅出于可读性的原因,添加新成员的代码位于表单的 AddMember 方法中。因为添加一个成员包括向两个表添加记录,因此开始一个事务处理。只在使用视图的表单中,使用 SQLSetProp() 函数来开始事务处理。
= SQLSetProp(ThisForm.nHandle, "Transactions", 2)

当用视图来访问远程数据时,你可以依靠 Visual FoxPro 来为你处理大多数的后台工作。例如,在早期的表单中,你看到了要发送一个 Insert 或 Update 到服务器,你只需要发布一条 TableUpdate()。Insert 或 Update 的语法都由 Visual FoxPro 为你做了。
这里的表单合作 SQLExec() 函数来发送 SQL 语句到服务器。这就意味着你必须自己构造 SQL 语句。在开始事务处理后,构造一个 Insert 语句来添加新记录到 Member 表中。
* 添加新成员到 member 表
lcSQL = "Insert member (lastname, firstname, " + ;
                       "middleinitial, photograph) " + ;
        "Values ('" + ;
             AllTrim(ThisForm.txtFirstName.Value) + ;
             "', '" + ;
             AllTrim(ThisForm.txtLastName.Value) + ;
             "', '" + ;
             AllTrim(ThisForm.txtMiddleInitial.Value) + ;
             "', " + "NULL)"
If SQLExec(ThisForm.nHandle, lcSQL) < 0
  ThisForm.ShowError
  * Rollback the transaction
  = SQLRollback(ThisForm.nHandle)
  Return
Endif

你现在需要知道 SQL Server 为新成员指定的 member_no。代码与早期表单相似。
* 找出新成员的 member_no
If SQLExec(ThisForm.nHandle, "Select @@identity") < 0
  <略去的代码>

nNewMemberID = sqlresult.exp

上一页  [1] [2] [3] [4] [5]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10