|
16.05.2012, 07:38 | #1 |
Участник
|
Для ODBC попробуйте так:
X++: otherStr += "DRIVER={SQL Server}"; otherStr += ";Trusted_Connection=No"; otherStr += strfmt(";SERVER=%1", ...); otherStr += strfmt(";DataBase=%1", ...); otherStr += strfmt(";UID=%1", ...); otherStr += strfmt(";PWD=%1", ...); loginProp.setOther(otherStr); По поводу Connection: 1) почему не использовать стандартные методы con.ttsbegin() и con.ttsabort()? 2) запрос на удаление к БД идет по уникальному ключу. Если ключ содержит текстовое поле, то проблема может быть в Adjustment'е. Пример: поле Field имеет длину 10 символов. В Аксапте значение в этом поле равно "Код1". В БД оно может быть записано или как "Код1______", или как "______Код1" ("_" - это пробел). Это нужно учитывать при вставке через запрос. Создайте 2 записи: одну из Аксапты, вторую - через запрос. И посмотрите, есть ли разница в текстовых полях. Последний раз редактировалось Dark Light; 16.05.2012 в 08:00. |
|
|
За это сообщение автора поблагодарили: NataLee (1), Corel (1). |
16.05.2012, 15:40 | #2 |
Участник
|
Цитата:
Цитата:
Сообщение от Dark Light
Для ODBC попробуйте так:
X++: otherStr += "DRIVER={SQL Server}"; otherStr += ";Trusted_Connection=No"; otherStr += strfmt(";SERVER=%1", ...); otherStr += strfmt(";DataBase=%1", ...); otherStr += strfmt(";UID=%1", ...); otherStr += strfmt(";PWD=%1", ...); loginProp.setOther(otherStr); Цитата:
Насчёт Adjustment - проверю. |
|
16.05.2012, 15:56 | #3 |
Участник
|
мы используем системный dsn из настроек :
X++: LP.setDSN(_odbcDSN); |
|
16.05.2012, 19:03 | #4 |
Участник
|
Цитата:
Driver = {SQL Server} В Вашем варианте это будет примерно так X++: static void testODBCConnection(Args _args) { ODBCConnection con; LoginProperty LP = new LoginProperty(); ; LP.setServer("Server"); LP.setDatabase("DB"); LP.setUserName("user"); LP.setPassword("pwd"); // Фигураные скобки не обязательны LP.setOther("DRIVER={SQL Server}"); // Или если с Windows аутентификацией без указания логина/пароля // LP.setOther("DRIVER={SQL Server};Trusted_Connection=Yes"); con = new ODBCConnection(LP); }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: NataLee (1), driller (2), Player1 (1). |
17.05.2012, 08:45 | #5 |
Участник
|
Цитата:
X++: Connection con = new UserConnection(); ttsbegin; con.ttsbegin(); //SQL запрос ... //SQL запрос //Обработка в Аксапте ... //Обработка в Аксапте con.ttsabort(); ttscommit; А из Аксапты доступа к данной таблице нет? Ведь гораздо будет проще в конце операции просто удалять нужную запись из LocksTable. Последний раз редактировалось Dark Light; 17.05.2012 в 08:53. |
|