Страница 1 из 1

InTouch+PostgreSQL

СообщениеДобавлено: Чт мар 18, 2010 5:38 pm
Useful
Здравствуйте, помогите пожалуйста с соединением к БД PostgreSQL (без обсуждения, почему была выбрана именно эта БД). В администрираторе ODBC БД прописал, после теста пишет, что соединение successful. В InTouch создаю кнопку с action:
SQLConnect(ConnectionID, " DSN = PostgreSQL35W ");
- PostgreSQL35W - имя БД в администраторе ODBC
- ConnectionID - memory integer тег

в руководстве пользователя написано, что ConnectionID - значение возвращается при успешном выполнении функции SQLConnect(). Если соединение установлено успешно, это будет положительное целое. Если соединение не установлено, это будет отрицательное целое.

у меня после нажатия кнопки (в принципе как и до) значение "0". На
SQLDisconnect тоже не реагирует. Меняю значение ConnectionID вручную (на "-5" например), после нажатия кнопки с SQLConnect, значение не меняется.

Я так понимаю, что PostgreSQL требует ряд дополнительных атрибутов подключения. Пытался еще добавить UID (login) и PWD (password), но положительных результатов это также не дало.

Если кто-то конкретно сталкивался с этой разновидностью БД, буду очень признателен за помощь. :!:

СообщениеДобавлено: Пт мар 19, 2010 7:55 am
Klinkmann_Msk
To Useful:
SQL_error = SQLConnect(ConnectionId,"DSN=PostgreSQL35W;UID=sa;PWD=sa;Database=test");
Без каких-либо пробелов.
SQL_Error, ConnectionID - Memory Integer.
После выполнения команды анализируем SQL_Error.

СообщениеДобавлено: Пт мар 19, 2010 8:11 am
Useful
Проблемка, в моем справочном руководстве нет ResultCode -1014 (это значение SQL_Error после выполнения написанного вами скрипта, значения пользователя, пароля и database свои), все заканчивается на -1011 :roll:

кстати что такое Database, в руководстве про этот атрибут ничего не написано, я написал физическое название БД, которое указываешь при ее создании.

и вообще может появилось более свежее руководство? =)

InTouch 10.1 если это важно.

СообщениеДобавлено: Пт мар 19, 2010 8:15 am
Klinkmann_Msk
To Useful:
Database=test - имя БД, к которой подключаемся.
Попробуйте использовать Display >> String >> SQLErrorMsg(SQL_error) для преобразования кода в строку-пояснение ошибки.

СообщениеДобавлено: Пт мар 19, 2010 8:53 am
Useful
Пишет:
"SQL.def does not exist" - т.е. не существует такого файла. Создал его в access manager, прописал привязку одного тэга с колонкой, сохранился, нашел физически этот файл в папке проекта, данные совпали с только что введенными. Перезапускаю проект и все работает, снимаю шляпу, большое спасибо.

А вопрос насчет мануала, в моем ничего нет по поводу атрибута database вы где это прочитали? поделитесь если это возможно.

СообщениеДобавлено: Пт мар 19, 2010 10:07 am
Klinkmann_Msk
To Useful:
Аттрибут Database аналогичен аттрибуту DB. См. хелп InTouch-index-SQLConnect.
Error: "WWSQL -1014 The Sql.def file does not exist".
1. Check the regional options concerning the "list seperator". Change it to ";"
2. The SQL.DEF will be created when a SQL bind list or table template is created for the application. In WindowMaker, select Special/SQL Access Manager/Bind List (or Table Template) from the menu or double-click the option from the app explorer tree.