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

使用 SQL pass-through

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

导读:第四节 使用 SQL pass-through与使用视图相比的另一个选择是单独地使用 SQL pass-through。这就意味着你发送 SQL 语句到后端并明白地告诉它要做什么。如果你想添加一条记录可发送一个 Insert。要保存记录可发送一个 Update。显然这比使用视图要做更多的工作。但是它允许你完全地控制发生什么和什么时候将会发生。载入表单表单 MEMBEXEC.SCX 是一个与上面的表单相似的表单,它只是使用 SQL pass-through 而不是视图。以下是表单的 Load 方法代码。Open Database libraryThisForm.nHandle = SQLConnect('cnLibrary')If ThisForm.nHandle < 0 ThisForm.ShowError ThisForm.lConnected = .F. Else lcSQL = "Select member.member_no, lastname, firstname, " + ; "

使用 SQL pass-through,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

第四节 使用 SQL pass-through

与使用视图相比的另一个选择是单独地使用 SQL pass-through。这就意味着你发送 SQL 语句到后端并明白地告诉它要做什么。如果你想添加一条记录可发送一个 Insert。要保存记录可发送一个 Update。显然这比使用视图要做更多的工作。但是它允许你完全地控制发生什么和什么时候将会发生。

载入表单

表单 MEMBEXEC.SCX 是一个与上面的表单相似的表单,它只是使用 SQL pass-through 而不是视图。以下是表单的 Load 方法代码。
Open Database library
ThisForm.nHandle = SQLConnect('cnLibrary')
If ThisForm.nHandle < 0
  ThisForm.ShowError
  ThisForm.lConnected = .F.
  Else
  lcSQL = "Select member.member_no, lastname, firstname, " + ;
          "  middleinitial, street, city, state, zip, " + ;
          "  phone_no, expr_date, birth_date = null, " + ;
          "  adult_member_no = null " + ;
          "From member, adult " + ;
          "Where member.member_no = -99 "
  If SQLExec(ThisForm.nHandle, lcSQL, "c_member") < 0
    ThisForm.ShowError
    ThisForm.lConnected = .F.
  Endif
    = CursorSetProp("Buffering", DB_BUFOPTRECORD, 'c_member')
Endif

在表单载入时,SQLConnect() 用于使用保存在 Visual FoxPro Library 数据库中的 cnLibrary 连接来建立到 SQL Server 的连接。如果 SQLConnect() 失败,除了退出和回家外,你没有别的事可做。
如果连接正常,以发送到 SQL Server 一个搜索成员号 -99 的 Select 语句来创建了一个空的游标。即使没有返回记录,Visual FoxPro 也会创建该游标。然后设置该游标的开放式缓存。这样做的原因是可以在该表单上使用缓存了的游标。这反映了一些视图的易用性。

定位一个成员

当在表单上使用视图时,定位一个成员只需简单地为视图参数赋值并重新获取值(requery)。当使用 SQL pass-through 时要稍稍复杂一些。要获取成员信息,要创建一条 Select 语句并发送到服务器。在下面的代码中你可以看到这是一个 Union Select。如果成员存在于 Member 表和 Adult 或 Juvenile 表中。
lcSQL = "Select member.member_no, lastname, firstname, " + ;
        "  middleinitial, street, city, state, zip, " + ;
        "  phone_no, expr_date, birth_date = null, " + ;
        "  adult_member_no = null " + ;
        "From member, adult " + ;
        "Where member.member_no = adult.member_no " + ;
        "  And member.member_no = " + ;
        "    AllTrim(ThisForm.txtMemberID.Value) + " " + ;
        "Union " + ;
        "Select member.member_no, lastname, firstname, " + ;
        "  middleinitial, street, city, state, zip, " + ;
        "  phone_no, expr_date, birth_date, " + ;

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


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

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10