powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подключение к Oracle через ODBC с указанием конкретной TNS Names
16 сообщений из 16, страница 1 из 1
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34543489
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа, здравствуйте.

Я понимаю, конечно, вопрос по подключение из PowerBuilder к Oracle набил оскомину, тем не менее, я сам что-то не могу справиться с вопросом, и на форуме поискал, именно этой темы не нашел.
Итак, я хочу реализовать подключение к базе через ODBC. Как ранее обсуждалось на Форуме, я захожу в Database Profile и создаю новый профиль, указываю DSN, имя и пароль. В синтаксисе выводится такой скрипт.
// Profile Ora
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=Ora tables;UID=user;PWD=password'"

Но здесь вот какая сложность. Дело в том, что в источниках данных ODBC, в этом самом DNS = Ora tables, значение параметра TNS Service Name равно work . Но в TNS Names, в общем-то, такой настройки нет, там есть tns с именем Work.place, и при этом есть еще и test.place. Соответственно, если я на своем профиле сделаю Test Connection, то возникает дополнительное окошко ODBC драйвера, с тремя полями - service, user, password, в котром надо дописать work.place, иначе Connection Successfully не будет. Если данный скрипт скопировать в программу и попытаться сделать connection, то и здесь выйдет то же самое.
Так вопрос - как в этом скрипте явно указать – какой tns names надо использовать?
Конечно, решить проблему можно изменив tns в DNS в ODBС-администраторе, но этого я не могу сделать, этот DNS используют и другие (не мои) программы.
Можно также, программным способом вначале создать свой «нужный» DNS и потом коннектиться. Но может есть возможность обойтись как-нибудь без этого?
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34543583
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenesansИтак, я хочу реализовать подключение к базе через ODBC.
Может проблема в том, что вместо использования родных драйверов PB к Oracle, Вы пытаетесь через ODBC работать?
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34543706
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenesansМожно также, программным способом вначале создать свой «нужный» DNS и потом коннектиться. Но может есть возможность обойтись как-нибудь без этого?Можно, можно. Можно жить вообще не создавая DNS. Выкачивай с сайтам микросфота MDAC и читай в нем документацию на ODBC.
Если кратко, сохраненный в системе DSN это всего-лишь сохраненый набор параметров. Ты всегда можешь переопределить любой из этих параметров.
SQLCA.DBParm = "ConnectString='DSN=Ora tables;UID=user;PWD=password;Service Name=Work.place'"
При этом неважно что хранится в DSN, параметры переданые в строке коннекта всегда имеют преимущество перед параметрами сохранеными в DSN.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544226
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky, спсаибо за совет, но я как раз хотел уйти от использования нативного интерфейса.

White Owl, на счет MDAC - спасибо за совет, попробую почитать.
На счет совета ConnectString='DSN=Ora tables;UID=user;PWD=password;Service Name=Work.place' - не катит. Я и до обращения в форум пробовал эту конструкцию, и по Вашему совету еще раз попробовал - все равно окошко odbc драйвера вылезает, чего-то не хватает. Видимо без чтения документации не получится.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544384
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что надо подавить выскакивание именно окошка, коннект происходит и без него
Жаль ссылочку не могу дать, правда не один раз убеждался, что нативные драйвера РВ намного лучше
--------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544491
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenesansИтак, я хочу реализовать подключение к базе через ODBC.
А можно узнать... почему через ODBC? почему бы на самом деле не использовать родные драйвера РВ к Ораклу?
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544538
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
- У меня есть непропатченная семерка, там есть проблема с нативным интерфейсом, она проявляется на Windows 2000 - при повторном Connect на transaction объекте приложение валится. Первое, куда я решил пойти - перейти на ODBC.
Сейчас уже смотрю в сторону того, чтобы пропатчить семерку.

- Также у меня есть десятка, но в ней я не нашел нативного интерфейса.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544694
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты с Ренессанс... могу дать Оракл 8-ку или 9-ку... телефон 3147
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544735
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRЕсли ты с Ренессанс... могу дать Оракл 8-ку или 9-ку... телефон 3147
Насколько я понял речь шла о версиях PowerBuilder.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544752
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет Oracle +ODBC.
Насколько я помню, существовали драйвера ODBC от самого Оракла и от Микрософт.
Оба - тормоза и сплошные глюки.
Вы с какими пробуете?
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34544753
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНасколько я понял речь шла о версиях PowerBuilder.
Да!? А я чета подумал про другое :)
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34545098
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Renesans- У меня есть непропатченная семерка, там есть проблема с нативным интерфейсом, она проявляется на Windows 2000 - при повторном Connect на transaction объекте приложение валится.Какой билд используете?

На 10077, 10213 и 10312 подобных глюков не замечено.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34545211
zatup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключайся через драйвер Oracle 7.3
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34545367
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VanoR, я к Ренесанссу отношения не имею. Действительно речь идет не о верси Oracle а о версии Билдера.

Anatoly Moskovsky, мы используем Oracle ODBC драйвер 9.02.00.62. Я сам пока не использую, только пытаюсь подключиться, но коллеги используют, и не очень жалуются.

PL99, у меня гораздо более ранняя версия :). Мне стыдно. Вот и думаю сейчас пропатчиться. Просто без нужды не хотелось, ведь работало все. Собственно, я разработкой уже не занимаюсь, просто поддерживаю, так сказать, свой продукт.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34546618
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RenesansЯ и до обращения в форум пробовал эту конструкцию, и по Вашему совету еще раз попробовал - все равно окошко odbc драйвера вылезает, чего-то не хватает. Видимо без чтения документации не получится.Если после вылезания окошка сразу ткнуть "Ok" коннект произойдет? Если да, то поможет такая строка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=Ora tables;UID=user;PWD=password'"
SQLCA.DBParm = SQLCA.DBParm + "ConnectOption='SQL_DRIVER_NOPROMPT'"
connect;
if SQLCA.SQLCode <>  0  then
	messagebox("Error", "Cannot connect to database~n"+SQLCA.SQLErrText)
	return
end if
В этом случае оно должно попытаться сконнектится молча.

В общем, выкачивай MDAC там много полезного есть. В том числе и описание этого самого окошка. Его появление определяется флагами: SQLDriverConnect FunctionSQL_DRIVER_PROMPT: The driver displays a dialog box, using the values from the connection string and system information (if any) as initial values. When the user exits the dialog box, the driver connects to the data source. It also constructs a connection string from the value of the DSN or DRIVER keyword in *InConnectionString and the information returned from the dialog box. It places this connection string in the *OutConnectionString buffer.

SQL_DRIVER_COMPLETE or SQL_DRIVER_COMPLETE_REQUIRED: If the connection string contains enough information, and that information is correct, the driver connects to the data source and copies *InConnectionString to *OutConnectionString. If any information is missing or incorrect, the driver takes the same actions as it does when DriverCompletion is SQL_DRIVER_PROMPT, except that if DriverCompletion is SQL_DRIVER_COMPLETE_REQUIRED, the driver disables the controls for any information not required to connect to the data source.

SQL_DRIVER_NOPROMPT: If the connection string contains enough information, the driver connects to the data source and copies *InConnectionString to *OutConnectionString. Otherwise, the driver returns SQL_ERROR for SQLDriverConnect.
...
Рейтинг: 0 / 0
Подключение к Oracle через ODBC с указанием конкретной TNS Names
    #34550211
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl, спасибо огромное. Все заработало, как Вы сказали. Все Ok.

Спасибо всем участникам, кто отозвался. Все советы оказались очень полезными.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подключение к Oracle через ODBC с указанием конкретной TNS Names
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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