|
![]() |
#1 |
Участник
|
Нашёл я ODBC драйвер но но как в в коде написать доступ к fdb не знаю?
|
|
![]() |
#2 |
Участник
|
Если до вечера никто не отпишется, то пришлю пример, дома есть для 3.0.
|
|
![]() |
#3 |
Участник
|
Посмотрите классы BankImport_RU или AddressCodeImport_RU. Там идет импорт из базы, к которой поключаются через ODBC.
|
|
![]() |
#4 |
Участник
|
хорошо б пример
|
|
![]() |
#5 |
Участник
|
PHP код:
|
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Shirmin Oleg
![]() PHP код:
но будет ли работать такая штука "LP.setDSN("Generators")"; на тех клиентских местах где в Панели управления( Windows) Администрирование\Источники ODBC не прописан DSN(в данном случае Generators) Проверить возможности нет ![]() Как поступить чтоб везде работало? Попробовал разные функции из LP но какую строку писать не знаю внутри т е последовательность Driver Provider ит д |
|
![]() |
#7 |
Участник
|
На вашем месте я бы не стал использовать 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(); } } |
|
![]() |
#8 |
Administrator
|
Цитата:
![]() В случае с ODBC можно через групповую политику прописать всем нужным товарищам создание двух веточек в реестре HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ с нужными параметрами (конкретные нюансы узнаются у себя на компьютере после создания системного DSN). Но на самом деле - лучше отойти от ODBC если есть такая возможность и сделать другим способом.
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: jonny.do (1). |
![]() |
#9 |
Участник
|
Настроить соединение на сервере и на нем же и запускать.
|
|
|
|