public static IEnumerable <Object[]> DataRecord(this System.Data.IDataReader source)
    {
        if (source == null)
        {
            throw new ArgumentNullException("source");
        }

        while (source.Read())
        {
            Object[] row = new Object[source.FieldCount];
            source.GetValues(row);
            yield return(row);
        }
    }
Esempio n. 2
0
        int IInserter.Execute(System.Data.IDataReader reader, string table)
        {
            var tablename = "{pfx}" + table;

            //if (dbProvider.Prefixion.IndexOf('.') == -1)
            //{
            //    tablename = String.Format("{1}{0}{2}", tablename, dbProvider.QuotePrefix, dbProvider.QuoteSuffix);
            //}
            System.Text.StringBuilder sb = new StringBuilder();
            sb.AppendFormat("INSERT INTO {0}(", tablename);;

            System.Text.StringBuilder sb2 = new StringBuilder();
            for (int i = 0; i < reader.FieldCount; i++)
            {
                if (i != 0)
                {
                    sb.Append(',');
                    sb2.Append(',');
                }
                sb.Append(this.dbProvider.QuotePrefix);
                sb.AppendFormat("{0}", reader.GetName(i));
                sb.Append(this.dbProvider.QuoteSuffix);
                sb2.AppendFormat("{{{0}}}", i);
            }
            sb.AppendFormat(")VALUES({0})", sb2);
            object[] objs = new object[reader.FieldCount];

            var sqlText = sb.ToString();
            int c       = 0;

            this.sqler.Execute(sc =>
            {
                if (reader.Read())
                {
                    reader.GetValues(objs);

                    sc.Reset(sqlText, objs);
                    c++;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }, cmd => cmd.ExecuteNonQuery());
            return(c);
        }
        private void OutputToFile(System.Data.IDataReader reader, string fileName, string separator, string terminator)
        {
            using (var s = System.IO.File.Create(fileName))
            {
                using (var writer = new System.IO.StreamWriter(s))
                {
                    var schematable = reader.GetSchemaTable();

                    var schemacol_colname      = schematable.Columns["ColumnName"];
                    var schemacol_ordinal      = schematable.Columns["ColumnOrdinal"];
                    var schemacol_datatypename = schematable.Columns["DataTypeName"];
                    var schemacol_providertype = schematable.Columns["ProviderType"];
                    var schemacol_allowdbnull  = schematable.Columns["AllowDBNull"];


                    var column_names = new string[schematable.Rows.Count];
                    if (!this.ExcludeHeaders)
                    {
                        for (int i = 0; i < schematable.Rows.Count; i++)
                        {
                            var         row          = schematable.Rows[i];
                            string      colname      = (string)row[schemacol_colname.Ordinal];
                            string      datatypename = (string)row[schemacol_datatypename.Ordinal];
                            System.Type providertype = (System.Type)row[schemacol_providertype.Ordinal];

                            column_names[i] = colname;

                            if (i > 0)
                            {
                                writer.Write(this.Separator);
                                //Console.Write(this.Separator);
                            }
                            writer.Write("{0}", colname);
                            //Console.Write("{0}", colname);
                        }
                        writer.Write(this.Terminator);
                        //Console.Write(this.Terminator);
                    }


                    DownloadCosmos.recordCount = 0;
                    object[] values = new object[reader.FieldCount];
                    while (reader.Read())
                    {
                        int num_fields = reader.GetValues(values);
                        for (int i = 0; i < num_fields; i++)
                        {
                            if (i > 0)
                            {
                                writer.Write(this.Separator);
                                //Console.Write(this.Separator);
                            }
                            writer.Write(values[i]);
                            //Console.Write(values[i]);
                        }
                        writer.Write(this.Terminator);
                        //Console.Write(this.Terminator);
                        DownloadCosmos.recordCount++;
                        if (DownloadCosmos.recordCount % incr == 0)
                        {
                            Console.Write(".");
                        }
                    }
                }
            }
        }
Esempio n. 4
0
 int System.Data.IDataRecord.GetValues(object[] values)
 {
     return(_dataReader.GetValues(values));
 }