public object ExecuteDBFunction(IDbCommand command, DBTransaction transaction) { object bufer = null; transaction.AddCommand(command); //UpdateCommand(command, parameters); transaction.ExecuteQuery(command); bufer = ((IDataParameter)command.Parameters[0]).Value; return(bufer); }
public async Task ExportTable(ExportProgressArgs ea) { try { DBETable table = ea.Table; if ((mode & ExportMode.Patch) != ExportMode.Patch) { table.SourceTable.Clear(); table.TargetTable.Clear(); } using (var transacton = new DBTransaction(table.SourceTable.Connection)) { ea.Current = 0; ea.Count = table.SourceTable.GetRowCount(transacton, table.Query); ea.Description = null; OnExportProgress(ea); using (transacton.Reader = transacton.ExecuteQuery(table.SourceTable.CreateQuery(table.Query, null), DBExecuteType.Reader) as IDataReader) { table.SourceTable.CheckColumns(transacton); while (transacton.Reader.Read()) { if (ea.Cancel) { transacton.Cancel(); return; } var row = table.SourceTable.LoadItemFromReader(transacton); var newRow = ExportRow(table, row); await table.TargetTable.SaveItem(newRow, null); ea.Current++; ea.Row = newRow; OnExportProgress(ea); if ((mode & ExportMode.Patch) != ExportMode.Patch) { table.SourceTable.Clear(); table.TargetTable.Clear(); } } transacton.Reader.Close(); } transacton.Commit(); } } catch (Exception ex) { ea.Exception = ex; OnExportProgress(ea); } }
public object ExecuteQuery(string query, bool noTransaction = false, DBExecuteType type = DBExecuteType.Scalar) { if (string.IsNullOrEmpty(query)) { return(null); } using (var transaction = new DBTransaction(this, null, noTransaction)) { var result = transaction.ExecuteQuery(transaction.AddCommand(query), type); transaction.Commit(); return(result); } }
public List <List <KeyValuePair <string, object> > > ExecuteListPair(string query) { using (var transaction = new DBTransaction(this, null, true)) { var list = new List <List <KeyValuePair <string, object> > >(); using (var reader = transaction.ExecuteQuery(transaction.AddCommand(query), DBExecuteType.Reader) as IDataReader) { int fCount = reader.FieldCount; while (reader.Read()) { var objects = new List <KeyValuePair <string, object> >(fCount); for (int i = 0; i < fCount; i++) { objects.Add(new KeyValuePair <string, object>(reader.GetName(i), reader.GetValue(i))); } list.Add(objects); } reader.Close(); } return(list); } }