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(); }
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); }
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); }