|
|
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
Привет всем! Озадачился вопросом, можно ли как-нибудь по значению, которое возвращает функция DBHandle() объекта транзакции узнать DSN базы, к которой коннектимся? (например, с помощью ODBC API) Спрашиваете зачем? =) Значит, есть операция выгрузки данных в пользовательскую базу. При коннекте драйвер ODBC открывает окно ODBC-менеджера с предложением выбрать источник данных (DSN). Происходит это, как все наверное знают, потому что я не указываю конкретно базу в параметрах транзакции. Ну так вот, после того, как пользователь выбирает DSN, происходит коннект и данные выгружаются, тут всё правильно. Но на выходе я не имею ничего, кроме DBHandle, кода ошибки (если есть) и типа драйвера. В параметрах транзакции остается всё без изменений. Собственно, хотелось бы понять - что же выбрал юзер (какой DSN). Собственное окно для выбора источника делать не предлагать, т.к. слишком просто =) Хотелось бы решение покрасивее =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 18:13 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
craftymanЗначит, есть операция выгрузки данных в пользовательскую базу. При коннекте драйвер ODBC открывает окно ODBC-менеджера с предложением выбрать источник данных (DSN). Происходит это, как все наверное знают, потому что я не указываю конкретно базу в параметрах транзакции. А почему ты его не указываешь? Юзер может там выбрать все что угодно. Твоя программа готова работать с базами абсолютно любого типа? :) craftymanСобственно, хотелось бы понять - что же выбрал юзер (какой DSN).Юзер может вообще сконструировать свой собственный DSN. В том самом окне выбрать любые другие параметры и усё. Теоретически, можно натравить на хендл коннекта SQLGetConnectAttr и по результатам пытаться догадаться, но... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 18:33 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
ну пайплайну, по сути, пофигу куда сливать =) мне просто надо запомнить в реестр название DSN на конкретной машине пользователя, чтобы в последующем коннектиться по-умолчанию именно к этому источнику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 18:39 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
craftymanмне просто надо запомнить в реестр название DSN на конкретной машине пользователя, чтобы в последующем коннектиться по-умолчанию именно к этому источнику. Составить список DSN и показать его юзеру, потом после выбора коннектиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 18:53 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСоставить список DSN и показать его юзеру, потом после выбора коннектиться. писал же вначале =) craftymanСобственное окно для выбора источника делать не предлагать, т.к. слишком просто =) видимо, это будет самым разумным решением, но я всё же подожду, может кто ченить подскажет =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 18:57 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
craftymanписал же вначале =) Я видел. Просто я не дописал предложение. Полное предложение такое: Составить список DSN и показать его юзеру, потом после выбора коннектиться и не ###ть тут всем мозги. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 19:28 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
Интересно в параметрах транзакции нет имени DSN? Прикольно... ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 09:56 |
|
||
|
можно ли узнать DSN по DBHandle?
|
|||
|---|---|---|---|
|
#18+
spas2001Интересно в параметрах транзакции нет имени DSN? Прикольно... ну, типа DNS-less конекшн =) в общем, решил вчера проблему. спасибо White Owl за полезные идеи в других топиках. воспользовался ODBC API-шной функцией SQLDriverConnect . описание external-функций: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. пример вызова: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. в переменной sOut на выходе получаем нужную строку ConnectString. В моем случае переменная sOut содержала в себе Код: plaintext Всем спасибо! Истина, как всегда, была где-то рядом =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34908656&tid=1336928]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 372ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...