使用ODBC连接数据库简介

Uselsx "*LSXODBC"               --为了使用ODBC类,须做此声明Dim con As ODBCConnection   --定义变量Dim qry As ODBCQueryDim result As ODBCResultSetSet con = New ODBCConnection  Set qry...显示全部
Uselsx "*LSXODBC"               --为了使用ODBC类,须做此声明

Dim con As ODBCConnection   --定义变量
Dim qry As ODBCQuery
Dim result As ODBCResultSet
Set con = New ODBCConnection  
Set qry = New ODBCQuery
Set result = New ODBCResultSet

Set qry.Connection = con       --建立连接
Set result.Query = qry

con.ConnectTo("ATDB")         --连接ATDB数据库

qry.SQL = "SELECT * FROM STUDENTS"    --sql语句                    --
...............................................
If result.Execute= False  Then  --执行sql失败,异常处理
    e = result.GetError              --获取错误代码
    msg = "Unable to execute SQL - " & result.GetErrorMessage(e) & " - " & result.GetExtendedErrorMessage(e)
    Messagebox msg,, "ERROR"
ELSE
  ....................
  ....................

End If

result.Close(DB_CLOSE)        --关闭所有结果集
con.Disconnect                     --关闭与数据库的连接

说明:
1.在使用ODBC类前一定要声明:Uselsx "*LSXODBC"     
2.执行sql语句时,要用ODBCResultSet的Execute函数,在执行存储函数时须使用ExecProcedure函数。另外,在执行存储函数时,可以就不行定义ODBCQuery对应,直接将ODBCConnection对象和ODBCResultSet对象建立连接,如:Set result.Connection = con     
3.定义时可以用另一种方式:如 Dim con As New ODBCConnection
4.在结束时要记得关闭结果集和关闭数据库的连接


补充(补充的内容是在网上看到的,在此记录下,以便日后查询):
1.New。New关键字是用来创建Notes对象的。New后面是要创建的Notes对象及所需的参数。使用New关键字需要注意的一点是:在      Declare事件中声明Notes对象的时候不能使用New关键字,否则编译时会出错;但是在Click事件中可以按Dim db As New NotesDatabase(“”,“***.NSF”)格式书写。

2.ODBCConnection对象是与ODBC建立连接的Notes对象,使用它的ConnectTo方法可以与ODBC用户数据源中定义的任何一个数据源建立连接,同时返回一些相关的信息,如:表的个数,表中的字段数等。

3.ODBCQuery对象是用户编写标准的SQL查询语句的对象,它的connection属性是指向已经与ODBC数据源建立好连接的ODBCConnection对象的;它的SQL属性是存放用户编写的SQL语句。

4.ODBCResultSet对象是执行SQL查询语句之后存放查询结果的,它的Query属性是指向包含建立起连接(ODBCConnection)的并写好SQL语句的ODBCQuery对象。

5.ODBCResultSet对象的NextRow方法的作用是将ODBCResultSet的记录指针指向下一条记录。因为在取到关系数据库中的记录之后,ODBCResultSet对象的指针是为空的,也就是说它并不自动指向结果集的第一条记录,NextRow方法即实现了将记录指针指向第一条记录的功能,并且在以后的循环过程中,此方法还将继续把指针逐一指向后面的记录,直到最后一条。

----6. 由于原先的关系数据库中的字段比较多,所以采用在程序中直接写入字段名的做法并不明智,因此,本程序使用了ODBCResultSet对象的FieldName(fieldindex)方法来通过字段的编号获得字段名,然后再使用GetValue(fieldname)函数得到域值,最后调用Document类的AppendItemValue(fieldname,value)函数在表单中追加一个名为fieldname的域并赋值。

----在把上述三个对象的属性分别设置好以后,调用ODBCResultSet对象的Execute方法,就可以从关系库中读取数据了。

收起
参与8

查看其它 6 个回答dhg666的回答

dhg666dhg666软件开发工程师济宁今创数码科技
收藏了,好东东
互联网服务 · 2013-05-27
浏览1151

回答者

dhg666
软件开发工程师济宁今创数码科技

dhg666 最近回答过的问题

回答状态

  • 发布时间:2013-05-27
  • 关注会员:1 人
  • 回答浏览:1151
  • X社区推广