Ejemplo n.º 1
0
 public void Connect(string h, string n, string u, string p)
 {
     host                 = h;
     user                 = u;
     password             = p;
     QMsSql.ConnectString = "Server=" + h + ";Initial Catalog=" + n + ";User Id=" + u + ";Password="******";";
     QMsSql.SqlInt("select count(*) FROM INFORMATION_SCHEMA.TABLES");
     databaseName = n;
 }
Ejemplo n.º 2
0
        public override void LoadStructure()
        {
            tables.Clear();

            using (QMsSql s = new QMsSql())
            {
                s.Open(@"
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_CATALOG=@1 order by 1,2", databaseName);
                while (s.GetRow())
                {
                    DbTable t = new DbTable(s[0], s[1], s[2]);
                    tables.Add(t.name, t);
                }
                s.Open(@"
SELECT c.COLUMN_NAME, c.COLUMN_DEFAULT,c.IS_NULLABLE,
c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH, 
(select count(*) from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cc
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc 
	on tc.CONSTRAINT_TYPE='PRIMARY KEY' and tc.TABLE_NAME=cc.TABLE_NAME 
	and tc.CONSTRAINT_NAME=cc.CONSTRAINT_NAME
where cc.TABLE_NAME=c.TABLE_NAME and CC.COLUMN_NAME=c.COLUMN_NAME) as pri,
c.table_schema, c.TABLE_NAME
from 
INFORMATION_SCHEMA.COLUMNS c where c.table_catalog=@1 order by c.ORDINAL_POSITION", databaseName);
                while (s.GetRow())
                {
                    string tableName = T.AppendTo(s[6], s[7], ".");
                    if (tables.ContainsKey(tableName))
                    {
                        // mssql allows views with columns that are multipart identifers - not supported here
                        if (s[0].Contains('.'))
                        {
                            tables.Remove(tableName);
                            continue;
                        }

                        DbTable  t = tables[tableName];
                        DbColumn c = new DbColumn(t, s[0], s[3], s.GetInt(4), s.GetInt(5) > 0, s[2] == "YES", s[1]);
                        t.columns.Add(c.name, c);
                        tablesByColumnName.Add(c.name, t);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public override int SqlInt(bool useRawValues, string sql, params object[] args)
 {
     return(QMsSql.SqlInt(useRawValues, sql, args));
 }
Ejemplo n.º 4
0
 public override int SqlInt(string sql)
 {
     return(QMsSql.SqlInt(sql));
 }