powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Link MySql
2 сообщений из 2, страница 1 из 1
Link MySql
    #39842248
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наткнулся на маленькую неприятность...

Чтоб всё было красиво, когда нужно линкую таблицы из MySql так
Код: vbnet
1.
DoCmd.TransferDatabase acLink, "ODBC", "ODBC;DSN=name_dns" , acTable, "tb1", "tbl1"


Когда уже не нужно, удаляю так
Код: vbnet
1.
DoCmd.DeleteObject acTable, "tb1"



Было замечено, что если в запросах скрещивать таблицы акеса и MySql, то при больших объемах данных есть существенные тормоза,
хотя задействуется минимум полей из MySql, такое ощущение что один хрен из инета тащится вся таблица...
Выход из положения - делать вьюхи в мускуле только с нужными полями, тогда опять всё летает, но тут как раз и появляется эта бяка:
При линковке вьюхи как таблицы, акцесс выкидывает запрос на определение (или игнорирование) хотя бы одного индекса...

Ну да, если руками один раз пристегнуть и не трогать, то нет проблем, а вот как сделать красиво?
Ну чтоб программно пристегнуть вьюху и при этом либо задать индекс, либо проигнорировать его программно без запроса акцеса?
Варианты с классами не шибко подходят, терпеть не могу когда код класса больше всего кода, который ты написал за всю свою жизнь...
...
Рейтинг: 0 / 0
Link MySql
    #39842252
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде так всё линкует без вопросов и таблицы и вьюхи...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Function link_tbl(s As String) As Integer
link_tbl = 0 ' возвращает если не удалось
On Error GoTo er1
Dim tdTarget As TableDef
Dim ConnectInfo As String
Dim tabname As String
  ConnectInfo = "ODBC;DRIVER=MySQL ODBC 8.0 ANSI Driver;SERVER=localhost;DATABASE=bd_inet;UID=login;PWD=1111"
  tabname = s
  Set tdTarget = CurrentDb.CreateTableDef(tabname)
  tdTarget.Connect = ConnectInfo
  tdTarget.SourceTableName = tabname
  CurrentDb.TableDefs.Append tdTarget
  Set tdTarget = Nothing
  link_tbl = 1 ' возвращает если удалось
  Exit Function
er1:
End Function
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Link MySql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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