我个人因为经常作一些数据库方面的程序,对于程序间如何与数据库进行接口的问题之烦是深有体会,因为VB在数据库链接的时候,一般是静态,即数据库存放的路径是固定的,如用VB的DATA,adodc,DataEnvironment等到作数据库链接时,如果存放数据库的路径被改变的话,就会找不到路经,真是一个特别烦的事。
笔者的解决方法是利用app.path来解决这个问题。
一、用data控件进行数据库链接,可以这样:
在form_load()过程中放入:
privateform_load()
DimstrAsString定义
str=App.Path
IfRight(str,1)<>”\”Then
str=str “\”
EndIf
data1.databasename=str&”\数据库名”
data1.recordsource=”数据表名”
data1.refresh
subend
这几句话的意为,打开当前程序运行的目录下的数据库。
你只要保证你的数据库在你程序所在的目录之下就行了。
二、利用adodc(ADODataControl)进行数据库链接:
privateform_load()
DimstrAsString定义
str=App.Path
IfRight(str,1)<>”\”Then
str=str “\”
EndIf
str=”Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource=”&str&”\tsl.mdb”
Adodc1.ConnectionString=str
Adodc1.CommandType=adCmdText
Adodc1.RecordSource=”select*fromtable3″
Adodc1.Refresh
endsub
三、利用DataEnvironment进行数据库链接
可在过程中放入:
OnErrorResumeNext
IfDataEnvironment1.rsCommand1.State<>adStateClosedThen
DataEnvironment1.rsCommand1.Close如果打开,则关闭
EndIf
i=InputBox(“请输入友人编号:”,”输入”)
Ifi=””ThenExitSub
DataEnvironment1.Connection1.OpenApp.Path&”\userdatabase\tsl.mdb”
DataEnvironment1.rsCommand1.Open”select*fromtable3where编号=”&i&””
SetDataReport2.DataSource=DataEnvironment1
DataReport2.DataMember=”command1″
DataReport2.show
endsub
四、利用ADO(ActiveXDataObjects)进行编程:
建立连接:
dimconnasnewadodb.connection
dimrsasnewadodb.recordset
dimstr
str=App.Path
IfRight(str,1)<>”\”Then
str=str “\”
EndIf
str=”Provider=Microsoft.Jet.OLEDB.3.51;PersistSecurityInfo=False;DataSource=”&str&”\tsl.mdb”
conn.openstr
rs.cursorlocation=aduseclient
rs.open”数据表名”,conn,adopenkeyset.adlockpessimistic
用完之后关闭数据库:
conn.close
setconn=nothing
以上代码在VB6,win98上运行通过,如有问题请发邮件给我:
作者:张振兴
E_mail:xingyun0615@sina.com
->