using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FirebirdSql.Data.FirebirdClient;
using FireBirdUtil.SqlUtils;
using System.Diagnostics;
using System.Data;
namespace FireBirdUtil.SqlHelpers
{
public class SqlHelper : IDisposable
{
private string _Database;
private FbConnection _Connection;
private FbTransaction _Transaction;
public SqlHelper(string database)
{
#if DEBUG
if (string.IsNullOrEmpty(database))
throw new ArgumentException("构造函数参数不允许为空");
#endif
_Database = database;
CreateConnection();
}
~SqlHelper()
{
Dispose();
}
private FbConnection CreateConnection()
{
_Connection = new FbConnection(SQLExecuteUtil.GetConnectionString(_Database));
_Connection.Open();
return _Connection;
}
public FbTransaction CreateTransaction()
{
_Transaction = _Connection.BeginTransaction();
return _Transaction;
}
///
/// 提交事务。注意:提交之后,事务就为空了
///
public void Commit()
{
_Transaction.Commit();
}
///
/// Rollback
///
public void Rollback()
{
_Transaction.Rollback();
}
public void Insert(string tableName, IDictionary fieldsValues)
{
new InsertHelper(_Database, _Connection, _Transaction).Insert(tableName, fieldsValues);
}
public void Delete(string tableName, string conditions)
{
new DeleteHelper(_Database, _Connection, _Transaction).Delete(tableName, conditions);
}
public void Update(string tableName, Dictionary newValues, string conditions)
{
new UpdateHelper(_Database, _Connection, _Transaction).Update(tableName, newValues, conditions);
}
public TResult Query(string sql, Func