【发布时间】:2020-04-08 02:30:55
【问题描述】:
在 ODBC 数据源管理器(64 位)下,我设置了一个用户数据源以连接到 Teradata 服务器。在 Teradata SQL Assistant 中,我可以使用此 ODBC 配置连接到 Teradata 服务器。
我们有一个现有的 VB.net 应用程序,我们希望通过它连接到 Teradata 服务器。下面给出的是连接到 Teradata 数据库的 VB.net 代码
Import System.Data.OldDB
Module Utilities
Public Sub connectToDB()
Dim sconnect As String
Dim CONN As OleDbConnection
Try
If CONN IsNot Nothing Then
If CONN.State = ConnectionState.Open Then
CONN.Close()
End If
CONN = Nothing
CONN = New OleDbConnection
sconnect = "Provider=TeraData_Connection;Data Source=XXXPROD.UNIX.XXX; Persist Security Info=True; User ID=xxxx;Password=xxxx; Session Mode=ANSI;"
CONN.ConnectionString = sconnect
CONN.Open()
Catch ex As Exception
MsgBox("Cannot open connection ! " & ex.Message,, "ERROR")
End Try
End Sub
End Module
在调用 connectToDB() 时显示以下错误消息
无法打开连接! 'TeraData_Connection' 提供程序不是 在本地机器上注册。
出现此错误是因为我的 Windows 10 机器或其他任何设备中未安装 Teradata 的 OLE DB 驱动程序吗?
如何确定我的机器上是否安装了 OLE DB 驱动程序?
还有其他方法可以从 vb.net 连接到 Teradata 吗?
我还有什么需要检查的吗?
【问题讨论】:
-
检查应用的位数。可能是它试图使用 32 位而不是 64 位驱动程序来处理您可能尚未安装的 teradata
-
没有 TeraData_Connection 提供程序。如果您打算使用 ODBC 驱动程序,则可以默认提供程序(或明确指定为 MSDASQL)。然后使用 DSN=*your-predefined-data-source-name* 或 Driver=*the-Teradata-ODBC-driver -name*(用于“无 DSN”连接)。
-
您要导入的 OldDB 到底是什么?
-
Teradata 实际上有一个 .net 提供商,它无疑会给您带来更好的结果。
-
@Mary,OldDb 是拼写错误的 OleDB。