Здравствуйте, Аноним, Вы писали: G>>А, что так тяжело самому сделать? Для какой СУБД надо? Я для MySQL делал, заняло ровно 5 минут. А>Был бы рад наглядному примеру
Да провайдеров-то легко написать, просто хотелось бы, чтобы они существовали в стандартной поставке, тогда есть какая-то уверенность, что они стабильно работают, юнит-тесты выполняются и т.д.
На всякий случай, вот мой код для Оракла —
"DevartOracleDataProvider.cs"
using System;
using System.Data;
using System.Data.Common;
using BLToolkit.Data.Sql.SqlProvider;
using Devart.Data.Oracle;
namespace BLToolkit.Data.DataProvider
{
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();
}
}
}
Здравствуйте, Andy77, Вы писали:
A>Игорь, так ты добавишь поддержку, если у тебя будет лицензия на их библиотеку? Я написал им на форум — http://forums.devart.com/viewtopic.php?f=1&t=25049, давай просто предложим дать тебе лицензию
Мой план сработал
We have sent an email to the BLToolkit support team with an offer to include the licensed version of dotConnect for Oracle Professional (free of charge) in their tool. There is no response from BLToolkit.
We have sent an email to the BLToolkit support team with an offer to include the licensed version of dotConnect for Oracle Professional (free of charge) in their tool. There is no response from BLToolkit.
Здравствуйте, koandrew, Вы писали:
K>Игорь — тебе та письмо написали:
K>
We have sent an email to the BLToolkit support team with an offer to include the licensed version of dotConnect for Oracle Professional (free of charge) in their tool. There is no response from BLToolkit.
Здравствуйте, Andy77, Вы писали:
A>Здравствуйте, Andy77, Вы писали:
A>>Игорь, так ты добавишь поддержку, если у тебя будет лицензия на их библиотеку? Я написал им на форум — http://forums.devart.com/viewtopic.php?f=1&t=25049, давай просто предложим дать тебе лицензию
A>Мой план сработал
A>
A>We have sent an email to the BLToolkit support team with an offer to include the licensed version of dotConnect for Oracle Professional (free of charge) in their tool. There is no response from BLToolkit.
У Devart dotConnect есть прикольный монитор для SQL-запросов.
Правда, он работает только с платной версией провайдера, к сожалению: http://www.devart.com/dbmonitor/
Я добавил в провайдер DevartOracleDataProvider свойство DbMonitorActive для включения мониторинга
и сделал отдельный csproj-файл для компиляции этого провайдера с полной версией dotConnect.
В экспресс-версии свойство DbMonitorActive тоже есть (для совместимости), но ничего не делает.
Сейчас pull request сооружу.
В Express-версии нет класса OracleMonitor.
Можно создать его экземпляр через рефлекшн, а можно обойтись директивами #if...#endif.
Я сделал через директивы, а в отдельном проекте определил символ DEVART_PRO.
>Разве простая замена версии провайдера не работает?
Тут есть еще одна тонкость. Платная версия требует внедрения ресурса лицензии, иначе не грузится.
Поэтому в отдельном проекте есть еще два файлика: licenses.licx и licenses.config.
Это не сами лицензии, а просто инструкции msbuild-у для генерации соответствующих ресурсов.
Работает это все при зарегистрированном на машине провайдере Devart, поэтому в солюшн я проект не добавлял.
А вообще можно и добавить, только не собирать по умолчанию.