vb创建odbc数据源的问题

dqbaiying 2004-07-01 04:31:48
我按照msdn上的例子做了一段建立odbc数据源的程序,所要连接的数据库就在我本机上(是sql server 2000),当网络正常时,程序可以顺利建立数据连接,可是当网络不正常时(断掉网线),程序就不能建立数据连接,而我却可以在控制面板中手动建立数据,这时为什么?
以下是我的代码:

Public Sub RegisterDataSource(ByVal server As String, ByVal database As String, ByVal DSN As String, ByVal uid As String, ByVal pwd As String)

Dim en As rdoEnvironment
Dim cnTest As rdoConnection
Dim strAttribs As String
'建造关键字字符串。
address = "\\" & server & "\PIPE\SQL\QUERY"
strAttribs = "Description=" _
& "SQL Server on server" _
& Chr$(13) & "OemToAnsi=No" _
& Chr$(13) & "SERVER=" & server _
& Chr$(13) & "Network=DBNMPNTW" _
& Chr$(13) & "Database=" & database _
& Chr$(13) & "Address=" & address

'建立新的注册的 DSN。
rdoEngine.rdoRegisterDataSource DSN, "SQL Server", True, strAttribs
'打开数据库。
Set en = rdoEngine.rdoEnvironments(0)
Set cnTest = en.OpenConnection(dsname:=DSN, Prompt:=rdDriverNoPrompt, Connect:="UID=" & uid & ";PWD=" & pwd & ";")
End Sub

Private Sub Command1_Click()
On Error GoTo cmd_click_err
If WriteIniFile(IniFilename, "DSN", "server", Text1.Text) And WriteIniFile(IniFilename, "DSN", "database", Text2.Text) And WriteIniFile(IniFilename, "DSN", "datasource", Text3.Text) Then
Call RegisterDataSource(Text1.Text, Text2.Text, DSN, username, password)
MsgBox "系统环境配置成功!", , "提示"
End If
Exit Sub
cmd_click_err:
MsgBox "环境设置失败。", 48, "提示"
End

End Sub

我将server赋值为127.0.0.1或localhost都不行,请各位指点。
...全文
324 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
homeland520 2004-07-02
  • 打赏
  • 举报
回复
哈哈
ryuginka 2004-07-01
  • 打赏
  • 举报
回复
up
artoksxb 2004-07-01
  • 打赏
  • 举报
回复
'建立新的注册的 DSN
DBEngine.RegisterDatabase “dsn中的名称”,”sql server”,true,”server=” & 服务器名& vbcr & “Database=” & 数据库
lincai 2004-07-01
  • 打赏
  • 举报
回复
"DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
"MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
"Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
这些不懂,请问能详细说说吗?
dqbaiying 2004-07-01
  • 打赏
  • 举报
回复
我的程序在连接到网络的情况下可以建立数据连接。
我想问的是用程序建立odbc数据源一定要保持网络连接吗?(我的数据库就在本机上)
射天狼 2004-07-01
  • 打赏
  • 举报
回复
建议用ADO连接数据库,这样可以省略创建ODBC的过程,如下:

Option Explicit

'工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Command1_Click()
rs.Open "SELECT * FROM TABLENAME WHERE NAME = '" & txtName.Text & "'", cn, adOpenDynamic, adLockOptimistic
If Not rs.EOF Then
Label1.Caption = rs!ID
Label2.Caption = rs!Memo
End If

rs.AddNew
rs!ID = "编号"
rs!Memo = "备注"
rs.Update
End Sub

Private Sub Form_Load()
cn.ConnectionString = "DBQ=" & App.Path & "\TelePhone.mdb;DefaultDir=" & _
App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
"DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
"MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
"Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
cn.Open
'查询字符串可以上这里查
'http://www.connectionstrings.com/
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
射天狼 2004-07-01
  • 打赏
  • 举报
回复
Private Const ODBC_ADD_SYS_DSN = 4

Private Declare Function SQLConfigDataSource Lib "odbccp32.dll" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long

'建立数据源
Public Function LoadDbSource2(StrDriver, StrAttributes As String) As Boolean
LoadDbSource2 = SQLConfigDataSource(0&, ODBC_ADD_SYS_DSN, StrDriver, StrAttributes)
End Function

================================

'构造建立数据源的函数
StrAttributes = "DSN=orient_oa" & Chr(0) & "Database=orientnbcws" & Chr(0)
StrAttributes = StrAttributes & "Description=MySQL ODBC 3.51 Driver DSN" & Chr(0)
StrAttributes = StrAttributes & "Option=3" & Chr(0) & "Password=" & Chr(0) & "Port=3306" & Chr(0)
StrAttributes = StrAttributes & "Server=210.211.15.246" & Chr(0) & "Stmt=" & Chr(0) & "User="

'建立 ODBC 数据源
Call LoadDbSource2("MySQL ODBC 3.51 Driver", StrAttributes)

这是建立MYSQL的数据源,SQL SERVER 的数据源参数怎么建立你可以查询注册表!!
huangjianyou 2004-07-01
  • 打赏
  • 举报
回复
连接字符串:

http://www.connectionstrings.com/

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧