AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2008, 11:53   #1  
lyolea84 is offline
lyolea84
Участник
Аватар для lyolea84
 
27 / 10 (1) +
Регистрация: 12.10.2007
ODBCConnection
Я имею следующий код
X++:
boolean OpenExternalDb()
{
    ;
    this.Close();
    try
    {
        ODBClogin   = new LoginProperty();
        ODBClogin.setOther('DSN=' + remoteDb + ';UID=' + exUser + ';PWD=' + exPWD);
        ODBCCon     = new ODBCConnection(ODBClogin);
    }
    catch
    {
       return false;
    }
    return true;
}
при выполнении появляется следующее сообщение:


Если у каго-то есть какие-то соображения как исправить эту ошибку.... помогите пожалуйста....
Миниатюры
Нажмите на изображение для увеличения
Название: odbc.PNG
Просмотров: 846
Размер:	23.9 Кб
ID:	3236  
Старый 27.02.2008, 11:58   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
А у вас сам источник ODBC на компьютере существует? (который Пуск-Настройка-Панель управления...)
Старый 27.02.2008, 12:02   #3  
lyolea84 is offline
lyolea84
Участник
Аватар для lyolea84
 
27 / 10 (1) +
Регистрация: 12.10.2007
Цитата:
Сообщение от Gustav Посмотреть сообщение
А у вас сам источник ODBC на компьютере существует? (который Пуск-Настройка-Панель управления...)
конечно..... и работает нормально
Старый 27.02.2008, 12:13   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
у меня некий фрагмент работает в таком виде, попробуйте по аналогии:
X++:
OdbcConnection C;
Statement S;
LoginProperty LP = new LoginProperty();

LP.setDSN(...);
LP.setUsername(...);
LP.setPassword(...);

info( strfmt('Попытка использовать источник ODBC %1 ...', LP.getDSN()) );
C = new OdbcConnection(LP);
info( '...успешна.');

S = C.createStatement();
S.executeUpdate('UPDATE...');
Старый 27.02.2008, 12:15   #5  
lyolea84 is offline
lyolea84
Участник
Аватар для lyolea84
 
27 / 10 (1) +
Регистрация: 12.10.2007
X++:
LP.setUsername(...);
LP.setPassword(...);
в DAX4 не срабатывают....
Старый 27.02.2008, 12:28   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от lyolea84 Посмотреть сообщение
в DAX4 не срабатывают....
беда... да, слышал, что с этой дыркой безопасности как-то в 4 попытались бороться...
а хелп что говорит?
а если в реестр прописать пароль и юзера? ветка типа: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\имя источника и далее прописываем PWD и UID. И далее по идее достаточно одного setDSN.
Старый 27.02.2008, 12:59   #7  
NNB is offline
NNB
Участник
 
103 / 12 (1) ++
Регистрация: 31.08.2006
Скорее всего код выполняется не там где источник (например источник на клиенте, а код на сервере). Из Job - тоже не работает
Старый 27.02.2008, 13:04   #8  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Не знаю, у меня на DAX4 SP2 все получилось без проблемм из джоба!

зы: DSN должен быть системным!
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 28.02.2008, 13:55   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Нужно организовывать соединение именно через DSN? Напрямую, без DSN нельзя?

Например, для MS SQL сервера это будет как-то так. Метод в классе Global

Коннект создается на стороне сервера по той причине, что у нас AOS подключается к серверу с админ-правами, а клиент - с пользовательскими. Поэтому попытка установить доверительное соединение со стороны клиента окончится неудачей. Будет отказ в доступе.

X++:
/*
Создание ODBCConnection с внешней базой данных по отношению к текущей (другой сервер)
*/
static server OdbcConnection rtg_createOdbcConnection(Name _server, Name _dataBase)
{
    OdbcConnection  connectBase;
    LoginProperty   lp = new LoginProperty();
    str             strConnectionString;
    ;

/*
    // Можно и в одну строку задать все параметры
    strConnectionString = strFmt("DRIVER=SQL Server;SERVER=%1;DataBase=%2;Trusted_Connection=Yes",_server,_dataBase);
    lp.setOther(strConnectionString);
*/
    // Но для определенности задаю те параметры, которые возможно, явным образом
    lp.setDatabase(_dataBase);
    lp.setServer(_server);
    // Фигурные скобки не обязательны
    lp.setOther("DRIVER={SQL Server};Trusted_Connection=Yes");

    connectBase = new OdbcConnection(LP);

    return connectBase;

}
При таком способе организации подключения нет необходимости во внешних (по отношению к программе) настройках DSN.

Кстати, возможно прав NNB. Может быть Вы создали DSN у клиента, а пытаетесь организовать подключение на стороне сервера, где этого DSN просто нет. Это еще один плюс использования прямого подключения без DSN.

Если сервер - это не MS SQL, базовый синтаксис строки подключения можно посмотреть здесь

http://www.connectionstrings.com/
Старый 28.02.2008, 14:49   #10  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Я тут немного писал на эту темы

Последний раз редактировалось MikeR; 28.02.2008 в 14:50. Причина: теги
Старый 28.02.2008, 17:00   #11  
mAXer is offline
mAXer
Участник
 
1 / 10 (1) +
Регистрация: 29.11.2007
В точности с такой же проблемой сталкивался. Ошибки были те же. В моем случае соединение устанавливалось с Oracle. Не мог победить до тех пор, пока не скачал последние драйвера ODBC с сайта Oracle. Под х64 так и не удалось настроить, хотя драйвера также были последние...
Теги
odbcconnection, oracle

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выгрузка из ODBC naf DAX: Программирование 9 25.12.2008 19:07
Класс ODBCConnection 6apcyk DAX: База знаний и проекты 10 18.11.2008 18:37
Как дость max, min через odbcConnection miklenew DAX: Программирование 2 10.09.2008 14:09
ODBCConnection Execute Select gb DAX in English 6 07.08.2005 00:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:40.