Exemple #1
0
    public static DataTable Convert(_Recordset rs, out OleDbParameter[] columns)
    {
        var adapter   = new OleDbDataAdapter();
        var dataTable = new DataTable();

        adapter.Fill(dataTable, rs);
        columns = new OleDbParameter[rs.Fields.Count];
        var index = 0;

        foreach (Field field in rs.Fields)
        {
            var param = new OleDbParameter();
            param.SourceColumn = field.Name;
            param.OleDbType    = (OleDbType)field.Type;

            var size      = field.DefinedSize;
            var precision = field.Precision;

            if (size == 0)
            {
                size = precision;
            }

            param.Size       = size;
            param.Precision  = precision;
            param.Scale      = field.NumericScale;
            param.IsNullable = (field.Attributes & (int)FieldAttributeEnum.adFldIsNullable) != 0;

            columns[index] = param;

            index++;
        }

        return(dataTable);
    }
Exemple #2
0
        /// <summary>
        /// Another pattern that is refactored here
        /// Given ADODB.Recordset return a string of its xml
        /// </summary>
        /// <param name="record">The record.</param>
        /// <returns></returns>
        static internal string GetXmlFromAdoRecordset(_Recordset record)
        {
            var     results = String.Empty;
            _Stream stream  = null;

            try
            {
                if (null != record)
                {
                    stream = new Stream();
                    record.Save(stream, PersistFormatEnum.adPersistXML);
                    results = stream.ReadText(-1);
                }
            }
            catch (Exception ex)
            {
                LogError("GetXmlFromAdoRecordset(): Error " + ex.Message, "GetXmlFromAdoRecordset");
            }
            finally
            {
                if (stream != null)
                {
                    Marshal.ReleaseComObject(stream);
                }
            }
            return(results);
        }
Exemple #3
0
        // invokes a visitor argument for each row of the current result
        public override void for_each_row(visitor theVisitor, string select_statement)
        {
            this.check();

            try
            {
                DataTable newTable = new DataTable();
                System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter();
                _Recordset result = this.rs_open(select_statement, true);

                adapter.Fill(newTable, result);
                DataRowCollection rows_ = newTable.Rows;

                for (int j = 0; j < rows_.Count; j++)
                {
                    theVisitor(rows_[j]);
                }
            }
            catch (System.Exception e)
            {
                if (e != null)
                {
                    throw new Exception(e.Message);
                }
            }
        }
        /// <summary>
        /// Classic ADO through Interop
        /// </summary>
        public void Example2()
        {
            // Open our Connection
            Connection conn = new Connection();

            conn.Open("Provider=SQLOLEDB;Server=localhost;" +
                      "Database=ADONET", "someuser", "", 0);
            // Query the database
            Command cmd = new Command();

            cmd.ActiveConnection = conn;
            cmd.CommandText      = "SELECT * FROM CUSTOMER";
            object     recaffected = null;
            object     prms        = new object();
            _Recordset rs          = cmd.Execute(out recaffected, ref prms, 0);

            // Dump all the records to the standard output
            while (!rs.EOF)
            {
                for (int x = 0; x < rs.Fields.Count; x++)
                {
                    Console.Write(rs.Fields[x].Value.ToString() + ":");
                }
                Console.WriteLine(""); // Endline
                rs.MoveNext();
            }

            // Clean up
            conn.Close();
        }
Exemple #5
0
        private List <Gidy> listaWybranychGid(string nazwaListy, Procedures procId)
        {
            List <Gidy> listaGID = new List <Gidy>();

            int        listaId   = GetWindow().AllChildren[nazwaListy].Id;
            _Recordset recordset = Runtime.WindowController.GetQueueMarked((int)procId, listaId, GetCallbackThread());

            try
            {
                //jesli nie jest nic zaznaczone to recordset == null
                if (recordset != null && recordset.RecordCount > 0)
                {
                    string fieldName;
                    recordset.MoveFirst();
                    while (recordset.EOF == false)
                    {
                        ADODB.Fields fields = recordset.Fields;
                        Gidy         g      = new Gidy();

                        for (int i = 0; i < fields.Count; i++)
                        {
                            fieldName = fields[i].Name;
                            if (fieldName == "TYP")
                            {
                                g.GIDTyp = fields[i].Value.ToString();
                            }

                            if (fieldName == "FIRMA")
                            {
                                g.GIDFirma = fields[i].Value.ToString();
                            }

                            if (fieldName == "NUMER")
                            {
                                g.GIDNumer = fields[i].Value.ToString();
                            }

                            if (fieldName == "LP")
                            {
                                g.GIDLp = fields[i].Value.ToString();
                            }
                        }

                        listaGID.Add(g);
                        recordset.MoveNext();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            return(listaGID);
        }
Exemple #6
0
    public static void WriteRows(_Recordset recordset, int maxRowCount, TextWriter writer)
    {
        var recordCount = recordset.RecordCount;

        writer.WriteLine("RecordCount: " + recordCount);

        if (!recordset.EOF)
        {
            var rsStr = recordset.GetString(StringFormatEnum.adClipString, maxRowCount, "\t", "\r\n", "<NULL>");
            writer.WriteLine(rsStr);
        }
    }
Exemple #7
0
        /// <summary>
        /// returns recordset for stored procedure executed
        /// </summary>
        public _Recordset exec_for_recordset(string statement, bool disconnect)
        {
            statement = statement.ToLower();
            if (statement.IndexOf("exec") == -1)
            {
                throw new Exception("Invalid SQL query");
            }

            _Recordset result = this.rs_open(statement, disconnect);

            return(result);
        }
Exemple #8
0
    public static void WriteSchema(_Recordset rs, TextWriter writer)
    {
        var index = 1;
        var d     = (double)rs.Fields.Count;

        d = Math.Log10(d);
        var colWidth = (int)d;

        colWidth++;

        foreach (Field field in rs.Fields)
        {
            var fieldType = field.Type;

            var line =
                StringHelper.FormatColumn(index.ToString(), colWidth, false) + ". " +
                StringHelper.FormatColumn(field.Name, 30, false);

            var fileTypeStr = Enum.Format(fieldType.GetType(), field.Type, "g");

            switch (fieldType)
            {
            case DataTypeEnum.adNumeric:
                fileTypeStr += "(" + field.Precision + "," + field.NumericScale + ")";
                break;

            case DataTypeEnum.adVarChar:
                fileTypeStr += "(" + field.DefinedSize + ")";
                break;

            default:
                break;
            }

            if ((field.Attributes & (int)FieldAttributeEnum.adFldMayBeNull) != 0)
            {
                fileTypeStr += " NULL";
            }
            else
            {
                fileTypeStr += " NOT NULL";
            }

            line += StringHelper.FormatColumn(fileTypeStr, 30, false);

            writer.WriteLine(line);
            index++;
        }
    }
Exemple #9
0
 public void close_recordset(_Recordset result)
 {
     result.Close();
 }