WedX - журнал о программировании и компьютерных науках

Создать связанную таблицу в Access из Teradata без DSN?

Подключение к Терадате

'Requires reference to ADO and ADOX  
Public adoCn As ADODB.Connection
Public adoCat As New ADOX.Catalog
Public adoTbl As New ADOX.Table

Function TD_Make_Linked_Table()

Dim varServer As String
Dim varDatabase As String
Dim varUser As String
Dim varPassword As String

varServer = "Test"
varDatabase = "Test_Test"
varUser = "Test_User"
varPassword = "Test_Password"

Set adoCn = New ADODB.Connection

'I have tried multiple connection strings

adoCn.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Teradata};" & _
                         "DBCName=" & varServer & ";" & _
                         "DefaultDatabase=" & varDatabase & ";" & _
                         "UID=" & varUser & ";" & _
                         "PWD=" & varPassword & ";"

adoCn.Open

Set adoCat = New ADOX.Catalog
Set adoCat.ActiveConnection = adoCn
Set adoTbl = New ADOX.Table

adoTbl.ParentCatalog = adoCat
adoTbl.Name = "Test"

'I have tried multiple property combinations
'Causes error 3265 Item not found
'adoTbl.Properties("?") = adoCn
'adoTbl.Properties("Jet OLEDB:Link Datasource") = "Test"
'adoTbl.Properties("Jet OLEDB:Link Provider String") = 
'adoTbl.Properties("Jet OLEDB:Remote Table Name") = "LinkDatabaseTable"
'adoTbl.Properties("Jet OLEDB:Create Link") = True

'Causes 3251 provider is not capable of performing operation
'adoCat.Tables.Append adoTbl

adoCn.Close

   Set adoTbl = Nothing
   Set adoCat = Nothing
   Set adoCn = Nothing

End Function

Я проверил, что соединение работает. Я могу запросить данные, открыв соединение и выполнив SQL.

Я не могу программно создать связанную таблицу в Access, используя Visual Basic для приложений с созданным соединением.

Кто-нибудь смог успешно создать связанную таблицу без dsn из Access в Teradata?


Ответы:


1

Если у вас есть рабочая строка подключения ODBC, вы сможете использовать DoCmd.TransferDatabase для создания связанной таблицы. У меня нет под рукой сервера Teradata, но это работает для меня с SQL Server:

Dim connStr As String
connStr = _
        "DRIVER=ODBC Driver 11 for SQL Server;" & _
        "SERVER=(local)\SQLEXPRESS;" & _
        "DATABASE=myDb;" & _
        "Trusted_Connection=yes"
DoCmd.TransferDatabase _
        TransferType:=acLink, _
        DatabaseType:="ODBC Database", _
        DatabaseName:="ODBC;" & connStr, _
        ObjectType:=acTable, _
        Source:="dbo.projects", _
        Destination:="dbo_projects"
30.08.2017
  • Спасибо за ваш ответ. Teradata не обрабатывает запрос таким же образом. Я получаю ошибку времени выполнения «3000» зарезервированная ошибка (-7778); сообщения об этой ошибке нет. 31.08.2017
  • @Orthogod - Вы можете вручную создать связанную таблицу из самого Access? 31.08.2017
  • Да, я могу создать связанную таблицу с источником данных из Access. 11.09.2017

  • 2

    В конце концов я нашел строку подключения, которая работает! :)

        Function adoTera()
    
            Dim oConn As ADODB.Connection
            Dim rs As ADODB.Recordset
    
            Set oConn = New ADODB.Connection
            Set rs = New ADODB.Recordset
    
            oConn.ConnectionString = "PROVIDER=MSDASQL;" & _
                 "DRIVER={Teradata};" & _
                 "DBCName=yourDBCName;" & _
                 "DefaultDatabase=yourDBName;" & _
                 "UID=yourUserName;" & _
                 "PWD=yourPassword;"
    
            oConn.Open
            rs.Open "SELECT * FROM yourTable", oConn
    
            ThisWorkbook.Worksheets("Sheet1").Range("A:A").CopyFromRecordset rs
            rs.Close
            oConn.Close
    
            Set rs = Nothing
            Set con = Nothing
    
        End Function
    
    28.09.2018
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]