Базовый класс подключения
Для создания собственного подключения используйте класс FastReport.Data.DataConnectionBase
. Этот класс имеет следующий набор методов, которые нужно переопределить при создании собственного подключения:
public abstract class DataConnectionBase : DataComponentBase
{
protected virtual string GetConnectionStringWithLoginInfo(string userName, string password)
public abstract string QuoteIdentifier(string value, DbConnection connection);
public virtual DbConnection GetConnection();
public virtual DbDataAdapter GetAdapter(string selectCommand, DbConnection connection,
CommandParameterCollection parameters);
public virtual ConnectionEditorBase GetEditor();
public virtual Type GetParameterType();
public virtual string GetConnectionId();
public virtual string[] GetTableNames();
public virtual void TestConnection();
public virtual void FillTableSchema(DataTable table, string selectCommand,
CommandParameterCollection parameters);
public virtual void FillTableData(DataTable table, string selectCommand,
CommandParameterCollection parameters);
}
Переопределять требуется не все методы - некоторые из них имеют реализацию по умолчанию, которой будет достаточно для большинства случаев. Так, если ваше подключение использует объекты типа DbConnection
и DbDataAdapter
(а это стандарт для подавляющего большинства подключений), то вам потребуется реализовать следующие методы:
public abstract string QuoteIdentifier(string value, DbConnection connection);
protected virtual string GetConnectionStringWithLoginInfo(string userName, string password)
public virtual DbConnection GetConnection();
public virtual DbDataAdapter GetAdapter(string selectCommand, DbConnection connection,
CommandParameterCollection parameters);
public virtual ConnectionEditorBase GetEditor();
public virtual Type GetParameterType();
public virtual string GetConnectionId();
public virtual string[] GetTableNames();
Если ваше подключение не работает с такими объектами, а, например, представляет собой мост между сервером приложений и отчетом, вам потребуется реализовать следующие методы:
public abstract string QuoteIdentifier(string value, DbConnection connection);
public virtual ConnectionEditorBase GetEditor();
public virtual Type GetParameterType();
public virtual string GetConnectionId();
public virtual string[] GetTableNames();
public virtual void TestConnection();
public virtual void FillTableSchema(DataTable table, string selectCommand,
CommandParameterCollection parameters);
public virtual void FillTableData(DataTable table, string selectCommand,
CommandParameterCollection parameters);
Ниже приведено описание каждого метода.