Кто-нибудь соединял DevArt с BLToolkit? Хотелось бы понять как заставить BLToolkit работать с DevArt, был бы благодарен за подробный ответ. поиском находил: http://www.sql.ru/forum/actualthread.aspx?tid=942729, но там никто так и не ответил.
25.11.12 01:51: Перенесено модератором из '.NET' — TK
Здравствуйте, Аноним, Вы писали:
А>Кто-нибудь соединял DevArt с BLToolkit? Хотелось бы понять как заставить BLToolkit работать с DevArt, был бы благодарен за подробный ответ. поиском находил: http://www.sql.ru/forum/actualthread.aspx?tid=942729, но там никто так и не ответил.
Какая субд?
Доводилось страхивать блт+деварт с ораклом. С постгресом пока используем Npgsql
Здравствуйте, Аноним, Вы писали:
А>Кто-нибудь соединял DevArt с BLToolkit? Хотелось бы понять как заставить BLToolkit работать с DevArt, был бы благодарен за подробный ответ. поиском находил: http://www.sql.ru/forum/actualthread.aspx?tid=942729, но там никто так и не ответил.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Аноним, Вы писали:
А>>Кто-нибудь соединял DevArt с BLToolkit? Хотелось бы понять как заставить BLToolkit работать с DevArt, был бы благодарен за подробный ответ. поиском находил: http://www.sql.ru/forum/actualthread.aspx?tid=942729, но там никто так и не ответил.
IT>https://nuget.org/packages?q=devart — вот это у них бесплатно? Если да, то добавить поддержку фигня вопрос.
Помечена как "Express", на их сайте эта версия распространяется бесплатно.
Другое дело, что по крайней мере под оракл эксперс версия бесполезна, с моей точки зрения, т.к. не имеет главной фичи это библиотеки — прямого подключения к ораклу, минуя oracle instant client.
Здравствуйте, Ummon, Вы писали:
U>Другое дело, что по крайней мере под оракл эксперс версия бесполезна, с моей точки зрения, т.к. не имеет главной фичи это библиотеки — прямого подключения к ораклу, минуя oracle instant client.
Ну нет, так нет.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
16.07.12 13:47
Оценка:
Здравствуйте, Ummon, Вы писали: U>Какая субд? U>Доводилось страхивать блт+деварт с ораклом. С постгресом пока используем Npgsql
Здравствуйте, Аноним, Вы писали:
А>Интересует devart dotconnect for MySQL
Именно с MySQL ничем помочь не смогу, но в общем случае необходимо лишь следующее:
1. Сделать своего наследника от BLToolkit.Data.DataProvider.DataProviderBase, переопределив там несколько методов/свойств, чтобы они возвращали типы той библиотеки, которую подключаем.
2. Зарегистрировать в блт свой провайдер:
var p = new DevartDataProvider();
DbManager.AddDataProvider("configurationName", p);
Re[4]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
18.07.12 16:04
Оценка:
Здесь вроде создатель BLToolkit появляется, может быть он добавит поддержку devart.
Re[4]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
20.07.12 14:56
Оценка:
Здравствуйте, Ummon, Вы писали:
U>Именно с MySQL ничем помочь не смогу, но в общем случае необходимо лишь следующее: U>1. Сделать своего наследника от BLToolkit.Data.DataProvider.DataProviderBase, переопределив там несколько методов/свойств, чтобы они возвращали типы той библиотеки, которую подключаем. U>2. Зарегистрировать в блт свой провайдер: U>
U>var p = new DevartDataProvider();
U>DbManager.AddDataProvider("configurationName", p);
U>
Здравствуйте, Аноним, Вы писали: А>Здравствуйте, Ummon, Вы писали: U>>Именно с MySQL ничем помочь не смогу, но в общем случае необходимо лишь следующее: U>>1. Сделать своего наследника от BLToolkit.Data.DataProvider.DataProviderBase, переопределив там несколько методов/свойств, чтобы они возвращали типы той библиотеки, которую подключаем. U>>2. Зарегистрировать в блт свой провайдер: U>>
U>>var p = new DevartDataProvider();
U>>DbManager.AddDataProvider("configurationName", p);
U>>
А>не могли бы вы выложить примеры.
1. Сделать наследника от DataProviderBase:
Скрытый текст
public class DevartDataProvider : DataProviderBase
{
public override Type ConnectionType
{
get { return typeof(OracleConnection); }
}
public override string Name
{
get { return"Devart"; }
}
public override IDbConnection CreateConnectionObject()
{
return new OracleConnection();
}
public override DbDataAdapter CreateDataAdapterObject()
{
return new OracleDataAdapter();
}
public override bool DeriveParameters(IDbCommand command)
{
var oraCommand = command as OracleCommand;
if (null != oraCommand)
{
try
{
OracleCommandBuilder.DeriveParameters(oraCommand);
}
catch (Exception ex)
{
// Make Oracle less laconic.
//throw new DataException(string.Format("{0}\nCommandText: {1}", ex.Message, oraCommand.CommandText), ex);
}
return true;
}
return false;
}
public override ISqlProvider CreateSqlProvider()
{
return new OracleSqlProvider();
}
}
Вместо всех OracleConnection/OracleCommand/etc должны быть типы из девартовской библиотеки, которую подключаешь. За исключением OracleSqlProvider — это блт-класс; в неймспейсе BLToolkit.Data.Sql.SqlProvider можно найти под MySql и заменить.
2. Зарегистрировать провайдер и коннекшен-стринг где-нить на старте приложения:
var p = new DevartDataProvider();
DbManager.AddDataProvider("configurationName", p);
DbManager.AddConnectionString("configurationName", [коннекшен-стринг]);
3. Использовать:
using(var db = new DbManager("configurationName")) // если был зарегистрирован только один провайдер, можно даже не указывать имя конфигурации
{
}
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Ummon, Вы писали:
U>>Другое дело, что по крайней мере под оракл эксперс версия бесполезна, с моей точки зрения, т.к. не имеет главной фичи это библиотеки — прямого подключения к ораклу, минуя oracle instant client.
IT>Ну нет, так нет.
Здравствуйте, Аноним, Вы писали:
А>Скажите как продвигается и планируется ли добавка поддержки Деварта, тоже интересная мне тема?
Пока никак. С их триальными версиями связываться нет смысла. Лицензию покупать не по-пацански.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
10.11.12 15:17
Оценка:
IT>Пока никак. С их триальными версиями связываться нет смысла. Лицензию покупать не по-пацански.
Могу предоставить предпоследнии версии, которые были слиты, или вам нужны вместе с исходниками?
Здравствуйте, Аноним, Вы писали:
IT>>Пока никак. С их триальными версиями связываться нет смысла. Лицензию покупать не по-пацански. А>Могу предоставить предпоследнии версии, которые были слиты, или вам нужны вместе с исходниками?
Исходники не нужны. Нужны рабочие компоненты с бесплатной лицензией. Кстати, я вижу в NuGet dotConnect Express for PostgreSQL, MySQL, Oracle и SQLite. Это можно использовать?
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
17.11.12 08:48
Оценка:
IT>Исходники не нужны. Нужны рабочие компоненты с бесплатной лицензией. Кстати, я вижу в NuGet dotConnect Express for PostgreSQL, MySQL, Oracle и SQLite. Это можно использовать?
Здравствуйте, Аноним, Вы писали:
А>Есть ли какие подвижки?
А, что так тяжело самому сделать? Для какой СУБД надо? Я для MySQL делал, заняло ровно 5 минут.
Re[8]: devart dotconnect и BLToolkit
От:
Аноним
Дата:
24.11.12 07:55
Оценка:
G>А, что так тяжело самому сделать? Для какой СУБД надо? Я для MySQL делал, заняло ровно 5 минут.
Был бы рад наглядному примеру
Здравствуйте, Аноним, Вы писали:
G>>А, что так тяжело самому сделать? Для какой СУБД надо? Я для MySQL делал, заняло ровно 5 минут. А>Был бы рад наглядному примеру
Имена классов в Devart.Data.MySql и в MySql.Data.MySqlClient совпадают, поэтому рецепт для MySQL очень прост:
1. Копируем файл MySqlDataProvider.cs к себе в проект
2. Подключаем к проекту Devart.Data и Devart.Data.MySql
3. В копии файла MySqlDataProvider.cs заменяем using MySql.Data.MySqlClient на using Devart.Data.MySql
4. В статическом конструкторе класса заменяем вызов метода ConfigureOldStyle на ConfigureNewStyle
5. Всё
Пример использования:
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.Host = arguments.Host;
builder.Port = arguments.Port;
builder.Database = database;
builder.Charset = "utf8";
builder.UserId = arguments.User;
builder.Password = arguments.Password;
builder.PersistSecurityInfo = true;
builder.DefaultCommandTimeout = 0;
using (DbManager db = new DbManager(new MySqlDataProvider(), builder.ToString()))
{
}