powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / adp и DSN
10 сообщений из 10, страница 1 из 1
adp и DSN
    #32368185
Chris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вижу access практически впервые :) . Есть чужой проект (.adp). Он умеет работать с БД на MS SQL Server. Для запросов к базе используется Application.CurrentProject.Connection. Надо в пожарном порядке научить его работать с другими базами.
1. Есть ли возможность подключаться к БД, указывая DSN на нее (а не имя сервера, базы и т.д. в Data Link Properties)?
2. Правильно ли я понял, что используя CurrentProject.Connection вообще нельзя работать ни с каким провайдером кроме SQLOLEDB?
3. А если создавать ADO-коннекцию вручную, то через нее можно работать с любым провайдером?
...
Рейтинг: 0 / 0
adp и DSN
    #32368346
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вт примерчик подключения к mdb

Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & CurrentProject.Path & "\служебная.mdb"
cnn.Open
Set rst = New ADODB.Recordset
rst.Open "SELECT Пользователь, ИмяОбъекта, LeftObject, TopObject, WidthObject, HeightObject " _
& "FROM tblКоордРазмерОбъектов " _
& "WHERE Пользователь='" & Forms![Главная форма]![Текущий пользователь] & "' AND ИмяОбъекта='" & frm.Name & "'", cnn, adOpenKeyset, adLockOptimistic, adCmdText
With rst
If Not (.EOF And .BOF) Then
frm.Move !LeftObject, !TopObject, !WidthObject, !HeightObject
Else
.AddNew
End If
End With
...
Рейтинг: 0 / 0
adp и DSN
    #32368410
Chris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хам трамвайный
Спасибо, я так понимаю, это был ответ на вопрос №3.

Поясню еще раз что меня интересует.
Проблема в том, что для любого обращения к БД разработчик этой софтины использовал такого типа код:
Код: plaintext
1.
2.
3.
MySQL =  "select ggg from hhh where jjj=1 "
If Application.CurrentProject.IsConnected = False Then Exit Sub
Set rstRec = Application.CurrentProject.Connection.Execute(MySQL)

Так вот, может ли вот это: Application.CurrentProject.Connection
1. быть коннекцией со строкой соединения типа "Provider=MSDASQL;DSN=mydsn;"
2. быть коннекцией к БД на FoxPro, MySQL и т.д.
...
Рейтинг: 0 / 0
adp и DSN
    #32368426
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пп 1 и 2
какой ты догадливый
...
Рейтинг: 0 / 0
adp и DSN
    #32368428
Chris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не понял
...
Рейтинг: 0 / 0
adp и DSN
    #32368432
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У CurrentProject есть метод OpenConnection.
Вот пример подключения к SQL серверу в зависимости от типа аутентификации.
Windows:
Код: plaintext
1.
CurrentProject.OpenConnection _
 "PROVIDER=SQLOLEDB.1 ;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=TRUE;DATA SOURCE=[Имя сервера];INITIAL CATALOG=[имя БД]"

Аутентификация сервера:
Код: plaintext
1.
2.
CurrentProject.OpenConnection _
 "Provider=SQLOLEDB.1 ;Data Source=[Имя сервера];Initial Catalog=[имя БД];PERSIST SECURITY INFO=True;Application Name=[имя приложения];", _
[пользователь], [пароль]


Тогда будет конект к другому серверу в CurrentProject.Connection, подробнее в хелпе и в МСДН.
...
Рейтинг: 0 / 0
adp и DSN
    #32368452
Chris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hummer
Дело в том что вот так работает:
Код: plaintext
1.
2.
    cs =  "PROVIDER=SQLOLEDB;DATA SOURCE=myhost;INITIAL CATALOG=myDB;PASSWORD=;USER ID=sa;" 
    Application.CurrentProject.OpenConnection cs

а вто так - нет:
Код: plaintext
1.
2.
3.
    cs =  "Provider=MSDASQL;DSN=myDSN;" 
    Application.CurrentProject.OpenConnection cs
' в этой строке выпадает ошибка   80004005   "Changed database context to myDB" 


обе строки соединения указывают на одну БД. Обычная ADO-коннекция открывается с любой из этих строк без проблем.
...
Рейтинг: 0 / 0
adp и DSN
    #32368813
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто сказал, что подключение к
возможно из ADP?

Проект Microsoft Access (.adp) представляет собой новый тип файлов Access, предоставляющих эффективный, естественный доступ к базам данных Microsoft SQL Server
...
Рейтинг: 0 / 0
adp и DSN
    #32368825
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Chris
По-моему, во втором случае и не должно работать.

Подключение из адп возможно куда угодно, отдельным конектом. Разумеется, сам проект работает только с СКЛ сервером, поэтому все запросы необходимо выполнять в рамках своего конекта к любому источнику данных, будь то фокс или ексель:) Это я к тому, что не получится в адп прописать в подключении проекта конект к ораклу или фоксу. Для этого достаточно зайти в меню файл-подключение, поэтому выполнять запросы используя Currentproject.connection в фоксе не получится. Проще прилинковать таблички БД фокса или Оракла непосредственно на сервере, а не делать подключение в аксесе.
...
Рейтинг: 0 / 0
adp и DSN
    #32368832
Chris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexJuice
я читал это в MSDN, но не был уверен что понял правильно. Собственно за этим и пришел :) Спасибо.
Hummer
Нормальная ADO-коннекция так устанавливается.

Короче все ясно, всем спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / adp и DSN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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