|
|
|
Переименование системного источника данных
|
|||
|---|---|---|---|
|
#18+
Привет всем! Честно говоря не знаю в ту ли тему, хотя наверное в ту, т.к. это больше вопрос к Гуру скриптов. Опишу задачку : есть несколько system dsn, скажем, "MainDSN" и "ReserveDSN" с "SecondaryReserveDSN". В каждом источнике прописан пароль и прочие необходимые параметры. Разница только в одном: разные сервера баз. есть некая программа, которая, ну так вот случилось, настроена на MainDSN и перенастраиваться не планируется ни в ближайшем, ни в далеком будущем. Программа работает, но вот переключаться на резервные сервера не умеет. Проблема : Программа работает под пользователем, без прав администратора (даже если ему их дать, есть следующий пункт). Нет ни малейшего желания давать пароль sa. Идея : если MainDSN не отвечает, то саму программу, которая настроена именно на имя, менять не надо, надо только изменить источник данных. Подскажите пожалуста скрипт, если конечно это можно решить скриптом, который НЕ МЕНЯЯ ничего в параметрах самих DSN поможет сменить имя MainDSN на old_MainDSN, а имя ReserveDSN сменит на MainDSN. Все должно работать без админских прав или так, что-бы пользователь не вводил пароли с логинами. Подскажите хотя бы направление, куда рыть. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 21:17 |
|
||
|
Переименование системного источника данных
|
|||
|---|---|---|---|
|
#18+
Решение сходу: Сделай набор строк коннекта в любом виде. Например как простой текстовый файл в котором каждая строка это строка возможного коннекта, первый сервер будет на первой строке, резервный на второй и так далее. При желании можешь этот файл зашифровать. Делаешь маленькую программку на Си, которая будет читать файл этот файл, брать по очереди строки коннекта и через SQLDriverConnect пытаться подсоединится к серверу. Если удалось, то отключаешься от сервера и отдаешь успешную строку коннекта в функцию SQLConfigDataSource c флагом ODBC_CONFIG_DSN и жестко заданым именем самого DSN'а Потом уже зовешь клиентскую программу. Можно оформить эту утилтку как запускалку для клиентской программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 22:58 |
|
||
|
Переименование системного источника данных
|
|||
|---|---|---|---|
|
#18+
Если не хочется возится с Си, хотя чего там возится? Делов то на полчаса-час максимум... Но вдруг? Тогда можно взять odbcconf.exe (оно идет в составе самих виндов) и играться с ней. Оно принимает команду CONFIGDSN или CONFIGSYSDSN и как параметр отдаешь ей строку коннекта. Для батника почти идеально, оно не проверит живой ли сервер на который показывает строка или не живой, но DSN переопределит запросто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 23:15 |
|
||
|
Переименование системного источника данных
|
|||
|---|---|---|---|
|
#18+
А вот переименовывать DSN'ы не меняя ничего в их внутренностях без ковыряния в регистри нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 23:18 |
|
||
|
Переименование системного источника данных
|
|||
|---|---|---|---|
|
#18+
oldTV Может так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 09:23 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34855773&tid=1345797]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 547ms |

| 0 / 0 |
