WEB开发网
开发学院数据库Access 在VB中兼容非ACCESS数据库的技巧 阅读

在VB中兼容非ACCESS数据库的技巧

 2008-10-07 00:00:00 来源:WEB开发网   
核心提示: (二)非ACCESS数据库的动态调入 在实际应用的很多情况下,经常需要在对一些事先并不知道其具体库结构的数据库进行调入、显示及打印其记录,在VB中兼容非ACCESS数据库的技巧(6),因而实现未知格式数据库的动态调入也是评价VB数据库应用程序兼容性的一个重要标志, 在VB中,因而熟练掌握使用DA

(二)非ACCESS数据库的动态调入

在实际应用的很多情况下,经常需要在对一些事先并不知道其具体库结构的数据库进行调入、显示及打印其记录。因而实现未知格式数据库的动态调入也是评价VB数据库应用程序兼容性的一个重要标志。

在VB中,网格控件非常适合用于浏览数据库中的数据,只需把数据放入网格即可。

在使用网格时动态调入的关键在于记录(Colume)内容和字段(Row)内容(包括字段的名称、类型、值等)的读取,因而生成一个可以对应于一个或多个数据表中的全部或部分记录的Dynaset对象是非常必要的。Dynaset对象还可以是一个动态查询的结果,能进行记录的增加、删除和修改等操作。

下面是一段用网格显示FoxPro数据库的程序。

以下为引用的内容:

  Sub DBLoad( )
Dim Db1 As database, Ds1 As Dynaset,Td As TableDefs,Fld As Fields
Dim Fname,Tmp,Path ToTalNum As String,I,J,Pos1 As Integer
Dim MyNum ’定义一个变体型数据
CMD1.Filter = "FoxPro数据库文件(*.DBF)|*.DBF|所有文件|*.*"
CMD1.DialogTitle = "调入Ms FoxPro数据库文件"
CMD1.FilterIndex = 1
CMD1.Action = 1
Fname$ = CMD1.Filename
Pos1% = GetPos( Fname$ )
Path$ = Left$( Fname$, Pos1% )
Tmp$ = Right$( Fname$, Len(Fname$)-Pos1)
Fn$ = Left$( Tmp$, Instr( 1,Tmp$,“.”) - 1 )
Set Db1 = OpenDatabase( Path$, True, False, "FoxPro 2.5;" )
Set Ds1 = Db1.CreateDynaset( Fn$ )
If Ds1.EOF And Ds1.BOF Then '数据库表内无记录则退出
TotalNum = 0
MsgBox "此数据表为空表!"
Exit Sub
Else '显示数据库表内的实际记录数
Ds1.MoveLast
TotalNum = Ds1.RecordCount
Grid1.Rows = TotalNum + 1 ’置网格的实际行数
Total.Caption = Str$(TotalNum)
End If
'置网格的实际列数并置每列的宽度
Set Td = Db1.TableDefs
Set Fld = Td( Fn$ ).Fields
Grid1.Cols = Fld.Count + 1
Grid1.ColWidth(0) = 600
For I = 1 To Fld.Count
Grid1.ColWidth(I) = 1500
Next I
'在网格的第一行内填入字段名
Grid1.Row = 0, Grid1.Col = 0
Grid1.Text = "序号"
For I = 1 To Fld.Count
Grid1.Col = I
Grid1.Text = Fld(I - 1).Name
Next I
'在网格中填入相应的数据
Ds1.MoveFirst
I = 1
Do While Not Ds1.EOF
Grid1.RowHeight(I) = 300
Grid1.Row = I
Grid1.Col = 0
Grid1.Text = I
For J = 1 To Fld.Count
Grid1.Col = J
MyNum = Ds1.Fields(J - 1).Value
'对记录的数据类型进行判断后做相应的处理
If IsNumeric( MyNum ) Or IsDate( MyNum ) Then
Grid1.Text = Str$( Ds1.Fields(J - 1).Value )
Else If VarType( MyNum ) = 8 Then
Grid1.Text = Ds1.Fields(J - 1).Value
Else If VarType( MyNum ) = 0 Or VarType( MyNum ) = 1 Then
Grid1.Text = " "
End If
On Error Resume Next
Next J
Ds1.MoveNext
I = I + 1
Loop
Ds1.Close
Db1.Close
Exit Sub

最后应记住,在VB的数据库应用程序运行之前,一定要在AUTOEXEC.BAT文件中加入一句SHARE.EXE /L:500。

以上所有程序均在Pentium/166机、中文Windows95下用VB4调试通过。

四、结束语

对非Access数据库的兼容是VB数据库编程中不可分割的重要部分。因而熟练掌握使用DAO方法对非ACCESS数据库的编程是极为重要的。并且,一定编程技巧的应用也有助于弥补VB对外来数据库支持的不足。

上一页  1 2 3 4 5 6 

Tags:VB 兼容 ACCESS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接