コード例 #1
0
        public void GetFields(Connection cnt)
        {
            System.Data.DataTable schemaColumn;
            fields  = new FieldList();
            Indexes = null;
            //
            //=====================================================
            dbWrapper db = new dbWrapper();

            db.CreateCommand((Connection)cnt.Clone());
            EPField fld;

            if (cnt.IsOleDb)
            {
                db.SetCommandText(TableName);
                db.SetCommandType(System.Data.CommandType.TableDirect);
            }
            else
            {
                db.SetCommandText("SELECT * FROM " + DatabaseEditUtil.SepBegin(cnt.NameDelimiterStyle) + TableName + DatabaseEditUtil.SepEnd(cnt.NameDelimiterStyle));
                db.SetCommandType(System.Data.CommandType.Text);
            }
            try
            {
                if (cnt.IsOleDb || cnt.IsMSSQL)
                {
                    db.OpenReader(System.Data.CommandBehavior.KeyInfo);
                }
                else
                {
                    db.OpenReader(System.Data.CommandBehavior.SchemaOnly);
                }
                schemaColumn = db.GetSchemaTable();
                db.CloseReader();
                db.Close();
                if (schemaColumn != null)
                {
                    for (int i = 0; i < schemaColumn.Rows.Count; i++)
                    {
                        fld = EPField.MakeFieldFromColumnInfo(i, schemaColumn.Rows[i]);
                        if (!string.IsNullOrEmpty(fld.Name))
                        {
                            fld.FromTableName = TableName;
                            fields.AddField(fld);
                        }
                    }
                }
            }
            catch (Exception er)
            {
                FormLog.NotifyException(true, er);
            }
            finally
            {
                db.CloseReader();
                db.Close();
            }
        }
コード例 #2
0
 public void LoadViews()
 {
     Views = null;
     try
     {
         if (dbCon.TheConnection is OleDbConnection)
         {
         }
         else if (dbCon.TheConnection is SqlConnection)
         {
             dbWrapper db = new dbWrapper();
             db.CreateCommand(dbCon);
             db.SetCommandText("SELECT [name] FROM sysobjects (nolock) WHERE [type] = 'V'");
             db.SetCommandType(System.Data.CommandType.Text);
             db.CreateAdapter();
             System.Data.DataSet ds = new System.Data.DataSet("DS");
             db.Fill(ds, "Views");
             if (ds.Tables.Count > 0)
             {
                 if (ds.Tables[0].Rows.Count > 0)
                 {
                     Views = new DatabaseView[ds.Tables[0].Rows.Count];
                     for (int i = 0; i < Views.Length; i++)
                     {
                         Views[i]          = new DatabaseView();
                         Views[i].ViewName = ds.Tables[0].Rows[i][0].ToString();
                     }
                 }
             }
         }
         else
         {
             DataTable vs = dbCon.GetViews();
             if (vs != null && vs.Rows.Count > 0)
             {
                 Views = new DatabaseView[vs.Rows.Count];
                 for (int i = 0; i < Views.Length; i++)
                 {
                     Views[i]          = new DatabaseView();
                     Views[i].ViewName = vs.Rows[i][0].ToString();
                 }
             }
         }
     }
     catch
     {
     }
 }
コード例 #3
0
        public void GetFields(Connection cnt)
        {
            int i;

            System.Data.DataTable schemaColumn = null;
            fields = new FieldList();
            if (cnt.IsOdbc)
            {
                return;
            }
            //=====================================================
            EPField   fld;
            dbWrapper db = new dbWrapper();

            db.CreateCommand(cnt);
            string sep1 = DatabaseEditUtil.SepBegin(cnt.NameDelimiterStyle);
            string sep2 = DatabaseEditUtil.SepEnd(cnt.NameDelimiterStyle);

            db.SetCommandText("SELECT * FROM " + sep1 + ViewName + sep2);
            db.SetCommandType(System.Data.CommandType.Text);
            try
            {
                db.OpenReader(System.Data.CommandBehavior.SchemaOnly);
                schemaColumn = db.GetSchemaTable();
                db.CloseReader();
                db.Close();
                if (schemaColumn != null)
                {
                    for (i = 0; i < schemaColumn.Rows.Count; i++)
                    {
                        fld = EPField.MakeFieldFromColumnInfo(i, schemaColumn.Rows[i]);
                        fld.FromTableName = ViewName;
                        fields.AddField(fld);
                    }
                }
            }
            catch
            {
            }
            finally
            {
                db.CloseReader();
                db.Close();
            }
        }