示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
 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);
     }
 }
示例#4
0
 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);
     }
 }