- 论坛徽章:
- 0
|
OS400上有类似windows上的odbc 连接吗?
chengx兄弟:开发这个东西是要靠自己去实践摸索才行的,不比解答一个简单的技术问题,我就帮你帮到底吧!
下面给出一个最简单的例子说明,希望能够启发你的思维,融会贯通,并依次思路应用于对SQL、ORACLE、SYBASE、DB2等其它关系型数据库之中...
- 案例说明:
- 我们用ACCESS数据库做一个员工信息表,然后从中读取数据到NOTES的一个表单(此案例中的表单名为fmEmployee)中建立文档,最后在视图(此案例中的视图名称为vwemployee)中显示数据信息。
- 步骤说明:
- 1、用ACCESS数据库建立员工信息表(当然也可以用其它关系型数据库建立),此案例中表名为employee;
- 2、在控制面板里建立数据源DSN,此案例中DSN名称为bowei;
- 3、在NOTES里设计代理(为简单起见,也可以先通过一个操作按钮来实现,然后移植到代理中去,具体代码见后);
- 代码说明:
- 1、在代理或操作的Options事件中添加如下代码:
- Uselsx "*LSXODBC"
- 2、在代理的Initialize事件或操作的Click事件中添加如下代码:(核心是ODBCConnection、odbcquery、odbcresultset三个对象的使用以及notesdocument对象的appenditemvalue方法的使用)。
- Sub Click(Source As Button)
- Dim con As New ODBCConnection
- Dim qry As New odbcquery
- Dim res As New odbcresultset
- Dim status As Variant
-
- Dim session As New notessession
- Dim db As notesdatabase
- Dim doc As notesdocument
- Dim view As notesview
-
- Set db=session.currentdatabase
- Set view=db.getview("vwemployee")
-
- '连接数据源
- status=con.connectto("bowei")
- Set qry.connection=con
- '执行查询,取得结果集
- qry.sql="select * from employee"
- Set res.query=qry
- Call res.execute
-
- '当结果集不为空时,循环将记录中各字段的值赋给表单各域
- While res.nextrow
- Set doc=New notesdocument(db)
- Call doc.appenditemvalue("form","fmEmployee")
- '取得结果集中指定字段的值直接赋给指定的域
- doc.empid=Cstr(res.getvalue("e_ID"))
- '调用appenditemvalue方法将取得的值赋给指定的域,好像与直接赋值的方式效果一样
- Call doc.appenditemvalue("empName",res.getvalue("e_name"))
- Call doc.appenditemvalue("empSex",res.getvalue("e_sex"))
- Call doc.appenditemvalue("empAge",res.getvalue("e_age"))
- Call doc.appenditemvalue("empAddress",res.getvalue("e_address"))
- Call doc.appenditemvalue("empPhone",res.getvalue("e_phone"))
- Call doc.appenditemvalue("empResume",res.getvalue("e_resume"))
- '保存文档
- Call doc.save(ture,False)
- Wend
-
- '关闭结果集
- res.close
- '断开连接
- con.disconnect
- '刷新视图
- view.refresh
- End Sub
复制代码 |
|