【问题标题】:Connect to Teradata from VB.net从 VB.net 连接到 Teradata
【发布时间】: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。

标签: vb.net teradata provider


【解决方案1】:

源文件:conn.aspx

   <%
   Dim connStr = _
     "Driver=Teradata;DBCNAME=<ODBC DSN Name>;Database=Dbc;UID=<Username>;PWD=<password>;"
   Dim conn As New System.Data.Odbc.OdbcConnection(connStr)

   conn.open()
   conn.close()
   %>

源文件:conn.vbs

Set conn = CreateObject("ADODB.Connection")

connStr = _
  "Driver=Teradata;DBCNAME=<ODBC DSN Name>;Database=Dbc;UID=<Username>;PWD=<password>;"

conn.open( connStr )
MsgBox("Opened")
conn.close()

【讨论】:

  • 请注意,在 TTU 16.00 之前,ODBC 驱动程序的名称只是 Teradata,但当前版本被命名为 Teradata Database ODBC Driver xx.yy,其中xx.yy 代表安装的版本。
  • 已确认:15.10 客户端使用“Teradata”作为提供程序,拒绝 16.20 上的名称,但接受 Fred 的命名约定(“Teradata Database ODBC Driver 16.20”)。
猜你喜欢
  • 2011-06-04
  • 2017-01-29
  • 2017-03-06
  • 2019-05-24
  • 2017-09-14
  • 2019-04-18
  • 2011-08-27
  • 1970-01-01
相关资源
最近更新 更多