Esempio n. 1
0
        override internal void LoadAll()
        {
            ADODB.Connection cnn = new ADODB.Connection();
            ADODB.Recordset  rs  = new ADODB.Recordset();
            ADOX.Catalog     cat = new ADOX.Catalog();

            // Open the Connection
            cnn.Open(dbRoot.ConnectionString, null, null, 0);
            cat.ActiveConnection = cnn;

            ADOX.Procedure proc = cat.Procedures[this.Procedure.Name];

            // Retrieve Parameter information
            rs.Source = proc.Command as ADODB.Command;
            rs.Fields.Refresh();

            Access.AccessResultColumn resultColumn;

            if (rs.Fields.Count > 0)
            {
                int ordinal = 0;

                foreach (ADODB.Field field in rs.Fields)
                {
                    resultColumn               = this.dbRoot.ClassFactory.CreateResultColumn() as Access.AccessResultColumn;
                    resultColumn.dbRoot        = this.dbRoot;
                    resultColumn.ResultColumns = this;

                    resultColumn.name     = field.Name;
                    resultColumn.ordinal  = ordinal++;
                    resultColumn.typeName = field.Type.ToString();

                    this._array.Add(resultColumn);
                }
            }

            cnn.Close();
        }
Esempio n. 2
0
        public StoredProcedureNodeViewModel(ADOX.Procedure procedure, ADODB.Connection connection, NodeViewModel parent)
            : base(parent)
        {
            if (null == procedure)
            {
                throw new ArgumentNullException("procedure");
            }
            if (null == connection)
            {
                throw new ArgumentNullException("connection");
            }

            string procedureName = procedure.Name;
            Regex  matchSPName   = new Regex(@"(.*);\d+");
            Match  match         = matchSPName.Match(procedureName);

            if (match.Success && match.Groups.Count == 2)
            {
                procedureName = match.Groups[1].Value;
            }

            AllowDrag = true;
            Text      = procedureName;

            List <string> paremeterNames = new List <string>();

            ADODB.Command command = new ADODB.CommandClass();
            command.ActiveConnection = connection;
            command.CommandType      = ADODB.CommandTypeEnum.adCmdStoredProc;
            command.CommandText      = procedureName;
            command.Parameters.Refresh();

            var parameterNames = GetParameterNames(command.Parameters);

            ConfigureParameters(procedureName, parameterNames);
        }
Esempio n. 3
0
        override internal void LoadAll()
        {
            DataTable metaData = CreateDataTable();

            ADODB.Connection cnn = new ADODB.Connection();
            ADOX.Catalog     cat = new ADOX.Catalog();

            // Open the Connection
            cnn.Open(dbRoot.ConnectionString, null, null, 0);
            cat.ActiveConnection = cnn;

            ADOX.Procedure proc = cat.Procedures[this.Procedure.Name];

            ADODB.Command cmd = proc.Command as ADODB.Command;

            // Retrieve Parameter information
            cmd.Parameters.Refresh();

            if (cmd.Parameters.Count > 0)
            {
                int ordinal = 0;

                foreach (ADODB.Parameter param in cmd.Parameters)
                {
                    DataRow row = metaData.NewRow();

                    string hyperlink = "False";

                    try
                    {
                        hyperlink = param.Properties["Jet OLEDB:Hyperlink"].Value.ToString();
                    }
                    catch {}

                    row["TYPE_NAME"] = hyperlink == "False" ? param.Type.ToString() : "Hyperlink";

                    row["PROCEDURE_CATALOG"]        = this.Procedure.Database;
                    row["PROCEDURE_SCHEMA"]         = null;
                    row["PROCEDURE_NAME"]           = this.Procedure.Name;
                    row["PARAMETER_NAME"]           = param.Name;
                    row["ORDINAL_POSITION"]         = ordinal++;
                    row["PARAMETER_TYPE"]           = param.Type;                            //.ToString();
                    row["PARAMETER_HASDEFAULT"]     = false;
                    row["PARAMETER_DEFAULT"]        = null;
                    row["IS_NULLABLE"]              = false;
                    row["DATA_TYPE"]                = param.Type;                                    //.ToString();
                    row["CHARACTER_MAXIMUM_LENGTH"] = 0;
                    row["CHARACTER_OCTET_LENGTH"]   = 0;
                    row["NUMERIC_PRECISION"]        = param.Precision;
                    row["NUMERIC_SCALE"]            = param.NumericScale;
                    row["DESCRIPTION"]              = "";
                    //	row["TYPE_NAME"]				= "";
                    row["LOCAL_TYPE_NAME"] = "";

                    metaData.Rows.Add(row);
                }
            }

            cnn.Close();

            base.PopulateArray(metaData);
        }