Подключение к Oracle
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 29.04.08 08:54
Оценка:
Первая проба, просьба ногами не бить Пытаюсь приконнектится к Oracle (alias/user/password — правильные). Насколько понял из описания, надо только добавить к ConfigurationString ".Oracle" (или еще какие-то компоненты доставлять надо?):

DbManager.AddConnectionString("Main.Oracle", "Data Source=alias;User ID=user;Password=password;");
...
try
{
  using(DbManager db = new DbManager())
  {
    db.SetCommand...

на SetCommand получаю:

BLToolkit.Data.DataException. Ошибка при подключении к серверу. При подключении к SQL Server 2005 эта ошибка может быть вызвана тем, что стандартные параметры SQL Server не разрешают удаленные подключения. (provider: Поставщик именованных каналов, error: 40 — Не удалось открыть подключение к SQL Server): Ошибка при подключении к серверу. При подключении к SQL Server 2005 эта ошибка может быть вызвана тем, что стандартные параметры SQL Server не разрешают удаленные подключения. (provider: Поставщик именованных каналов, error: 40 — Не удалось открыть подключение к SQL Server)


Вообщем чего-то я непонимаю, только непонимаю — чего...

з.ы. VS2005
Re: Подключение к Oracle
От: Блудов Павел Россия  
Дата: 29.04.08 09:15
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Первая проба, просьба ногами не бить Пытаюсь приконнектится к Oracle (alias/user/password — правильные). Насколько понял из описания, надо только добавить к ConfigurationString ".Oracle" (или еще какие-то компоненты доставлять надо?):


Провайдер для Оракла по-умолчанию присутствует в BLTookit, но автоматически не регистрируется.
Потому что он, во-первых, грузит за собой сборку System.Oracle.DataAccess или что-то вроде, а во-вторых он бастард и редко кем используется.
Родной провайдер от Оракла работает быстрее и умеет много больше.

Изучать дружбу Оракла с Булкитом нужно с проекта UnitTests\DataProvider\Oracle
Думаю одного взгляда внутрь App.config будет достаточно чтобы понять что и где нужно регистрировать.
... << RSDN@Home 1.2.0 alpha 2 rev. 872>>
Подключение к Oracle
От: andrex Украина  
Дата: 29.04.08 09:17
Оценка: 58 (2)
#Имя: FAQ.rfd.oracle.connect
Здравствуйте, Odi$$ey, Вы писали:

Так работает для провайдера из фреймворка:

            DbManager.AddDataProvider(new OracleDataProvider());
            DbManager.AddConnectionString("Oracle", "Data Source=toy;User ID=user; Password=password;");

            using(var db = new DbManager())
            {
                Console.WriteLine(db.Connection.State);
            }
... << RSDN@Home 1.2.0 alpha rev. 788>>
Я бы изменил мир — но Бог не даёт исходников...
bltoolkit oracle rfd
Re[2]: Подключение к Oracle
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 29.04.08 10:07
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Провайдер для Оракла по-умолчанию присутствует в BLTookit, но автоматически не регистрируется.


что значит "не регистрируется"? reference надо добавлять или что?

БП>Потому что он, во-первых, грузит за собой сборку System.Oracle.DataAccess или что-то вроде, а во-вторых он бастард и редко кем используется.

БП>Родной провайдер от Оракла работает быстрее и умеет много больше.

родной — это про который andrex написал? DbManager.AddDataProvider(new OracleDataProvider());?

БП>Изучать дружбу Оракла с Булкитом нужно с проекта UnitTests\DataProvider\Oracle

БП>Думаю одного взгляда внутрь App.config будет достаточно чтобы понять что и где нужно регистрировать.

посмотрел, ничего не понял как это написать кодом, без app.config?
Re[2]: Подключение к Oracle
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 29.04.08 10:08
Оценка:
Здравствуйте, andrex, Вы писали:

A>Так работает для провайдера из фреймворка:


A>
A>            DbManager.AddDataProvider(new OracleDataProvider());
A>            DbManager.AddConnectionString("Oracle", "Data Source=toy;User ID=user; Password=password;");
A>


да, так подключается
Re[3]: Подключение к Oracle
От: andrex Украина  
Дата: 29.04.08 11:15
Оценка: 58 (2)
Здравствуйте, Odi$$ey, Вы писали:

OE>родной — это про который andrex написал? DbManager.AddDataProvider(new OracleDataProvider());?


Да, родной это из .NET Framework > 1.1 (для 1.0 он поставлялся отдельно).
Живет в System.Data.OracleClient. В тулките уже есть референс на эту сборку, но он не подключен в DbManager по умолчанию чтобы не грузится зря в память. Поэтому нужно вручную подключать как выше в своем коде или дописать в статическом конструкторе DbManager чтобы у себя не вызывать.

Есть еще Оракловский провайдер.
Живет в пространстве имен Oracle.DataAccess.Client (Oracle.DataAccess.dll).

Для того чтобы подключить его к тулкиту можно:

1) В исходниках тулкита добавить референс на Oracle.DataAccess.dll. Далее добавить в исходники OdpDataProvider и прописать его опять же в статическом конструкторе DbManager

2) Чтобы не трогать исходники тулкита, можно в своем приложении сделать референс на Oracle.DataAccess.dll, сделать наследника для DbManager где прописать провайдер (OdpDataProvider можно включить в свой проект) и инициализировать в наследнике и провайдер и строку соединения...

Строка соединения для него будет добавляться так:
DbManager.AddConnectionString("Odp", "Data Source=toy;User ID=user; Password=password;");


Какой провайдер выбрать:

1) MS
Для небольших проектов без особых требований к ораклу (достать положить простые типы данных) хватит с головой. Поддерживает только базовый набор типов да и вообще довольно ограниченный. При этом довольно быстрый (по тестам трехгодичной давности, когда ODP только появился? провайдер от MS рвал его как тузик грелку. Но потом ODP исправился

2) ODP
Если планируется серьезная работа с ораклом со всякими специфичными типами данных типа XmlType и т.д. то лучше выбрать провайдер от Оракла. Так же он уже немного быстрее по скорости чем провайдер от MS даже при обычной выборке данных.
А вот про удобство deployment-а я лучше промолчу
... << RSDN@Home 1.2.0 alpha rev. 788>>
Я бы изменил мир — но Бог не даёт исходников...
Re[4]: Подключение к Oracle
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 29.04.08 11:21
Оценка:
Здравствуйте, andrex, Вы писали:

A>Какой провайдер выбрать:


мне нужно будет массив байт писать в поле типа BLOB, OracleDataProvider это умеет?
Re[5]: Подключение к Oracle
От: Блудов Павел Россия  
Дата: 30.04.08 00:54
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>мне нужно будет массив байт писать в поле типа BLOB, OracleDataProvider это умеет?

Это все умеют. И родной и не родной провайдеры понимают что byte[] нужно складывать в блобы а char[] в клобы.
... << RSDN@Home 1.2.0 alpha 2 rev. 872>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.