VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 用VB实现动态文本数据到ORACLE数据库基表的迁移
发表评论(0)作者:徐西波, 平台:VB6.0+Win98, 阅读:8853, 日期:2001-03-02
用VB实现动态文本数据到ORACLE数据库基表的迁移
日照港务局通信信息中心
徐西波
---- 将文本数据迁移到ORACLE数据基表中可采用多种方法,如采用ORACLE公司提供的SQL*LOADER实用工具,该工具适用于将静态文本数据加载到ORACLE基表,也可采用程序控制手段将动态变化的文本数据迁移到ORACLE基表中。本文讲述了如何通过VB5.0实现将动态变化的文本数据迁移到ORACLE基表中。

1﹑实现环境:

数据库服务器:ORACLE 7.3数据库

Windows 95/98

VB5.0中文专业版

通过串口接收到的内容动态变化的文本数据文件
2﹑实现要求:
---- 将客户机通过串口接收到的动态变化的 bl.dat 文本文件内容迁移到ORACLE数据库rg01的 hyyb_bl 基表中。

3﹑实现步骤:

---- ⑴﹑首先保证客户端与ORACLE数据库的正常连接。

---- ⑵﹑在客户端安装ORACLE 客户端网络组件如下:

Oracle Client Configuration Manager

Oracle Client Software Agent 3.2.2.1.0
---- ⑶﹑在客户端设置ODBC数据源:
在控制面板中双点 <32位ODBC>项,弹出窗口,选中<用户DSN>选项卡,然后点 击<添加>按钮。

在弹出的<创建新数据源>窗口中,选择<用于Oracle 的微软ODBC驱动器>,按<完成>按钮。(注:该 驱动器是在安装VB5或OFFICE97等微软产品时装好的)

在弹出的<用于Oracle设置的微软ODBC驱动器>窗口中,设置数据源名称为数据库名,用户名称及连 接字段。在本文中设置如下:数据源名称:rg01。描述:rg01。用户名称:developer。连接字段: rg01

按<确认>按钮
---- ⑷﹑编制代码:(代码片断)
. 在 Form_load()事件中设置连接字符串:
  strCn = "ODBC;DSN=rg01;UID=developer;PWD=scmis"
. 为ODBC数据源创建链接表:

blfilename = "c:\qx\bl.dat"
    blrqstring = ""    
Set dbs = OpenDatabase("C:\qx\qx.mdb", False, False)
    On Error Resume Next
    dbs.TableDefs.Delete "Tabbl"
    dbs.TableDefs.Refresh
    Set tdf = dbs.CreateTableDef("Tabbl")
   tdf.Connect = strCn
    tdf.SourceTableName = "developer.hyyb_bl"
    dbs.TableDefs.Append tdf
    dbs.TableDefs.Refresh

Set rst_bl = dbs.OpenRecordset("Tabbl",
dbOpenDynaset)
    Set qdf = dbs.CreateQueryDef("")
qdf.Connect = strCn

    On Error GoTo 0
. 设置定时事件:
Private Sub Timer1_Timer()
    Dim blstring As String
    blstring = ""
    On Error GoTo errhandel
    If blrqstring <> FileDateTime(blfilename) Then
        blrqstring = FileDateTime(blfilename)
        If blfilename <> "" Then
              Refreshbl blfilename
        End If
     End If
errhandel:
End Sub
. 文件操作
Sub Refreshbl(para_filename)
     Dim MyString
     qdf.SQL = "delete from developer.hyyb_bl"
     qdf.ReturnsRecords = False
     qdf.Execute
     Open para_filename For Input As #1
     Do While Not EOF(1)
        Line Input #1, MyString
        dbs.Execute "insert into
             Tabbl values(注释:" & MyString & "注释:)"
    Loop
     Close #1
End Sub