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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2011, 15:43   #1  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
На вашем месте я бы не стал использовать odbc.
Из своего опыта: odbc (если подключение идет не к источнику данных Microsoft) - вещь глючная, тормозная, не надежная.

В Ax2009 использовал Net для подключения к FB. Все летает! Кроме того гораздо больше возможностей по управлению транзакциями, метаданными и т.п.

И еще:
- этот код работает и на серверной и на клиентской части, нужно лишь установить NET драйвер FB
- Никаких заморочек с настройкой DSN

Вот пример :
X++:
static void Job34(Args _args)
{
    FirebirdSql.Data.FirebirdClient.FbConnection    connection;
    FirebirdSql.Data.FirebirdClient.FbCommand       command;
    FirebirdSql.Data.FirebirdClient.FbDataReader    dataReader;
    str                     sql;
    str                     connectionString;
    InteropPermission   dllPermission = new InteropPermission(InteropKind::ClrInterop);

    Date netDate(UtcDateTime _utcDateTime)
    {
        return DateTimeUtil::date(_utcDateTime);
    }
    real netDouble(real _value)
    {
        return _value;
    }
    

    ;
    dllPermission.assert();

    connectionString = strFmt("User=%1;Password=%2;DataSource=%3;Port=3050;Database=%4;Charset=WIN1251;Dialect=3;ServerTyp=0",
            "UserLogin",
            "UserPassword",
            "ServerAddres",
            "Filename");

    connection = new FirebirdSql.Data.FirebirdClient.FbConnection(connectionString);

    connection.Open();

    if (connection.get_State() == System.Data.ConnectionState::Open)
    {
        sql = "select * from mytable";

        command = new FirebirdSql.Data.FirebirdClient.FbCommand(sql, connection);
        command.set_Transaction(connection.BeginTransaction(System.Data.IsolationLevel::ReadCommitted));

        dataReader = command.ExecuteReader();

        while (chi_NetBoolean(dataReader.Read()) == true)
        {
            // 0..3 - эно номер стобца в результате запроса, можно обратится и по имени слобца в принципе..
            print netDate(dataReader.GetDateTime(0));
            print dataReader.GetString(1);
            print dataReader.GetInt32(2);
            print netDouble(dataReader.GetDouble(3));
        }

        dataReader.Close();

        connection.Close();
    }
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mbsturk: Ax 2009 Rollup 4 Version Checker Blog bot DAX Blogs 0 29.04.2010 17:05
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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