powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать сохраненный запрос к серверу по ADO
11 сообщений из 11, страница 1 из 1
Как создать сохраненный запрос к серверу по ADO
    #40137243
Adilby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    
Public Function connectDSN(cn As String) As String
     Select Case cn
        Case "Ado"
            connectDSN = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=" & tSRV & ";Port =3306;" & vbCr & "User=" & tUSR & ";" & vbCr & "Password=" & tPSW & ";" & vbCr & "stmt=set names utf8;" & _
                "Database=" & tBS & ";Trusted Connection=No;"
        Case "Dao"
            connectDSN = "ODBC;Driver=MySQL ODBC 5.3 Unicode Driver;Server=" & tSRV & ";Database=" & tBS & ";UID=" & tUSR & ";PWD=" & tPSW & ";OPTION=4194304;"
    End Select
End Function



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
    
    If DCount("Name", "MSysObjects", "Type = 5 And Name = 'tblServer'") = 1 Then CurrentDb.QueryDefs.Delete "tblServer"
    Set qry = CurrentDb.CreateQueryDef("tblServer")
    qry.Connect = connectDSN("Dao")
    qry.ReturnsRecords = True
    qry.SQL = strSQL
    Set qry = Nothing



Код: vbnet
1.
CurrentDb.Execute ("INSERT INTO tblLocal (pole) SELECT pole FROM  tblServer;")



Как создать сохраненный запрос к серверу по ADO соединению?
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137258
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. "Сохраненный запрос" называется "процедура".
2. Создание
Код: sql
1.
CurrentDb.Execute ("create procedure MyCoolProc as INSERT INTO tblLocal (pole) SELECT pole FROM  tblServer;")


3. Вызов
Код: sql
1.
CurrentDb.Execute ("MyCoolProc")
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137266
Adilby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adilby

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
    
    If DCount("Name", "MSysObjects", "Type = 5 And Name = 'tblServer'") = 1 Then CurrentDb.QueryDefs.Delete "tblServer"
    Set qry = CurrentDb.CreateQueryDef("tblServer")
    qry.Connect = connectDSN("Dao")
    qry.ReturnsRecords = True
    qry.SQL = strSQL
    Set qry = Nothing




Я имел ввиду вот этот запрос к серверу. Он работает через DAO соединение, а мне бы хотелось иметь такой запрос по ADO соединению. DAO не стабильно работает.
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137289
Adilby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tblServer - сохраненный в аксесе запрос к серверу.
tblLocal - таблица в аксес.
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137298
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tblServer - это у вас запрос к внешнему серверу, например к MS SQL Server?

вероятно вы хотели сделать pass-through query. это можно сделать как в ручном режиме из интерфейса, так и программно.

смотрите тут: https://docs.microsoft.com/ru-ru/office/troubleshoot/access/adox-create-sql-pass-through-query
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137345
Adilby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
tblServer - это у вас запрос к внешнему серверу, например к MS SQL Server?

Да, верно. Но в моем случае сервер на MySQL.

Konst_One
вероятно вы хотели сделать pass-through query. это можно сделать как в ручном режиме из интерфейса, так и программно.

смотрите тут: https://docs.microsoft.com/ru-ru/office/troubleshoot/access/adox-create-sql-pass-through-query

Создал запрос по примеру вашей ссылки, но он ни чем не отличается от ранее созданного моего запроса:

Adilby
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    
Public Function connectDSN(cn As String) As String
     Select Case cn
        Case "Ado"
            connectDSN = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=" & tSRV & ";Port =3306;" & vbCr & "User=" & tUSR & ";" & vbCr & "Password=" & tPSW & ";" & vbCr & "stmt=set names utf8;" & _
                "Database=" & tBS & ";Trusted Connection=No;"
        Case "Dao"
            connectDSN = "ODBC;Driver=MySQL ODBC 5.3 Unicode Driver;Server=" & tSRV & ";Database=" & tBS & ";UID=" & tUSR & ";PWD=" & tPSW & ";OPTION=4194304;"
    End Select
End Function



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
    
    If DCount("Name", "MSysObjects", "Type = 5 And Name = 'tblServer'") = 1 Then CurrentDb.QueryDefs.Delete "tblServer"
    Set qry = CurrentDb.CreateQueryDef("tblServer")
    qry.Connect = connectDSN("Dao")
    qry.ReturnsRecords = True
    qry.SQL = strSQL
    Set qry = Nothing




Мне хотелось бы использовать именно строку подключения ADO:
Код: vbnet
1.
2.
connectDSN = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=" & tSRV & ";Port =3306;" & vbCr & "User=" & tUSR & ";" & vbCr & "Password=" & tPSW & ";" & vbCr & "stmt=set names utf8;" & _
                "Database=" & tBS & ";Trusted Connection=No;"
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137348
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понимаю, что вам нужно. Сначала убедитесь, что вы можете через интерфейс Access произвести нужные вам действия.

PS
откройте ODBC-менеджер, создайте там нужный вам DSN и уже его используйте в pass-through query
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137545
Adilby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, если кратко вопрос такой:
Можно ли импортировать данные из таблицы сервера MySQL в локальную таблицу Access через соединение по ADO? Через пробежку по recordset не надо, работает долго, надо через INSERT, работает быстрее, типа
Код: vbnet
1.
CurrentDb.Execute ("INSERT INTO tblLocal (pole) SELECT pole FROM  tblServer;")
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137548
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вы же писали, что линковка таблички из MySQL у вас нормально работает, так в чём тогда вопрос?

порядок должен быть такой:
1. линкуем табличку(view) из MySQL в вашу базу MDB
2. делаем обычный запрос внутри вашей MDB , использую уже прилинкованную табличку(view)

PS
можете юзать ADO или DAO, это как вам уже удобней
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137585
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно:а какова степень "кривизны" рук у того кто это заявляет
Adilby
..... DAO не стабильно работает.
Adilby
Через пробежку по recordset не надо, работает долго, надо через INSERT, работает быстрее
То что любой запрос это есть "пробежка по рекордсету" (правда не в VBA-в машинных кодах,к которым,в конечном счете,приходит и VBA) мы не ведаем
Не "изобретайте" велосипед-Вам еще в первом ответе сказали как надо делать
...
Рейтинг: 0 / 0
Как создать сохраненный запрос к серверу по ADO
    #40137621
Adilby
Хорошо, если кратко вопрос такой:
Можно ли импортировать данные из таблицы сервера MySQL в локальную таблицу Access через соединение по ADO?




Я выкрутился следующим образом.
1. Создал DSN через
панель управления -> администрирование -> источники данных ODBC
2. Дальше в своей базе данных
Внешние данные -> Создать источник данных -> Из других источников -> База данных ODBC -> Импорт -> Источник данных компьютера
3. После импорта Access сам прелагает сохранить операцию импорта.
4. А дальше просто на кнопку простейший код повесил.

Код: vbnet
1.
2.
3.
4.
...
DoCmd.DeleteObject acTable, "таблица"
DoCmd.RunSavedImportExport "Импорт который я сохранил"
...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать сохраненный запрос к серверу по ADO
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]