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

Я понимаю, конечно, вопрос по подключение из 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
22.05.2007, 19:16
    #34543583
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к Oracle через ODBC с указанием конкретной TNS Names
RenesansИтак, я хочу реализовать подключение к базе через ODBC.
Может проблема в том, что вместо использования родных драйверов PB к Oracle, Вы пытаетесь через ODBC работать?
...
Рейтинг: 0 / 0
22.05.2007, 20:12
    #34543706
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к Oracle через ODBC с указанием конкретной TNS Names
RenesansМожно также, программным способом вначале создать свой «нужный» DNS и потом коннектиться. Но может есть возможность обойтись как-нибудь без этого?Можно, можно. Можно жить вообще не создавая DNS. Выкачивай с сайтам микросфота MDAC и читай в нем документацию на ODBC.
Если кратко, сохраненный в системе DSN это всего-лишь сохраненый набор параметров. Ты всегда можешь переопределить любой из этих параметров.
SQLCA.DBParm = "ConnectString='DSN=Ora tables;UID=user;PWD=password;Service Name=Work.place'"
При этом неважно что хранится в DSN, параметры переданые в строке коннекта всегда имеют преимущество перед параметрами сохранеными в DSN.
...
Рейтинг: 0 / 0
23.05.2007, 07:41
    #34544226
Renesans
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к Oracle через ODBC с указанием конкретной TNS Names
Anatoly Moskovsky, спсаибо за совет, но я как раз хотел уйти от использования нативного интерфейса.

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

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

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

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

PL99, у меня гораздо более ранняя версия :). Мне стыдно. Вот и думаю сейчас пропатчиться. Просто без нужды не хотелось, ведь работало все. Собственно, я разработкой уже не занимаюсь, просто поддерживаю, так сказать, свой продукт.
...
Рейтинг: 0 / 0
23.05.2007, 17:52
    #34546618
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к Oracle через ODBC с указанием конкретной TNS Names
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
25.05.2007, 09:07
    #34550211
Renesans
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к Oracle через ODBC с указанием конкретной TNS Names
White Owl, спасибо огромное. Все заработало, как Вы сказали. Все Ok.

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


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