internal VistaDBConnection(VistaDBDatabase db): this() { if(db.Parameters != VDBDatabaseParam.InMemory) throw new VistaDBException(VistaDBErrorCodes.DatabaseMustBeTemporary); this.vistaDBSQL = new VistaDBLocalConnection(db); this.exclusive = true; this.connectionState = ConnectionState.Open; }
public VistaDBLocalConnection(VistaDBDatabase db): this() { if(!VistaDBAPI.ivsql_AssignDatabaseConnection(this.connectionID, db.DatabaseId, null, true, false, 0, null, db.CaseSensitive)) throw new VistaDBException(VistaDBErrorCodes.DatabaseNotOpened); db.FreeDatabase(); this.cultureID = db.Locale; this.caseSensitivity = db.CaseSensitive; this.opened = true; }
internal VistaDBConnection(VistaDBDatabase db) : this() { if (db.Parameters != VDBDatabaseParam.InMemory) { throw new VistaDBException(VistaDBErrorCodes.DatabaseMustBeTemporary); } this.vistaDBSQL = new VistaDBLocalConnection(db); this.exclusive = true; this.connectionState = ConnectionState.Open; }
public VistaDBLocalConnection(VistaDBDatabase db) : this() { if (!VistaDBAPI.ivsql_AssignDatabaseConnection(this.connectionID, db.DatabaseId, null, true, false, 0, null, db.CaseSensitive)) { throw new VistaDBException(VistaDBErrorCodes.DatabaseNotOpened); } db.FreeDatabase(); this.cultureID = db.Locale; this.caseSensitivity = db.CaseSensitive; this.opened = true; }
public DataTable LoadForeignKeys(string cn, string databaseName, string tableName) { DataTable metaData = new DataTable(); metaData.Columns.Add("PK_TABLE_CATALOG", Type.GetType("System.String")); metaData.Columns.Add("PK_TABLE_SCHEMA", Type.GetType("System.String")); metaData.Columns.Add("FK_TABLE_CATALOG", Type.GetType("System.String")); metaData.Columns.Add("FK_TABLE_SCHEMA", Type.GetType("System.String")); metaData.Columns.Add("FK_TABLE_NAME", Type.GetType("System.String")); metaData.Columns.Add("PK_TABLE_NAME", Type.GetType("System.String")); metaData.Columns.Add("ORDINAL", Type.GetType("System.Int32")); metaData.Columns.Add("FK_NAME", Type.GetType("System.String")); metaData.Columns.Add("PK_NAME", Type.GetType("System.String")); metaData.Columns.Add("PK_COLUMN_NAME", Type.GetType("System.String")); metaData.Columns.Add("FK_COLUMN_NAME", Type.GetType("System.String")); try { Provider.VistaDB.VistaDBDatabase db = OpenDatabase(cn); db.Connect(); Provider.VistaDB.VistaDBTable table = new Provider.VistaDB.VistaDBTable(db, tableName); table.Open(); string[] fkeys = new string[0]; table.EnumForeignKeys(out fkeys); string foreignKey = ""; string primaryTable = ""; string primaryKey = ""; if (fkeys != null) { foreach (string fkey in fkeys) { table.GetForeignKey(fkey, out foreignKey, out primaryTable, out primaryKey); string[] fColumns = foreignKey.Split(new char[] { ';' }); string[] pColumns = primaryKey.Split(new char[] { ';' }); for (int i = 0; i < fColumns.GetLength(0); i++) { metaData.Rows.Add(new object[] { databaseName, DBNull.Value, DBNull.Value, DBNull.Value, tableName, primaryTable, 0, fkey, "PKEY", pColumns[i], fColumns[i] } ); } } table.Close(); db.Close(); } } catch {} return(metaData); }
public DataTable LoadIndexes(string cn, string databaseName, string tableName) { DataTable metaData = new DataTable(); metaData.Columns.Add("TABLE_CATALOG", Type.GetType("System.String")); metaData.Columns.Add("TABLE_NAME", Type.GetType("System.String")); metaData.Columns.Add("INDEX_CATALOG", Type.GetType("System.String")); metaData.Columns.Add("INDEX_NAME", Type.GetType("System.String")); metaData.Columns.Add("UNIQUE", Type.GetType("System.Boolean")); metaData.Columns.Add("COLLATION", Type.GetType("System.Int16")); metaData.Columns.Add("COLUMN_NAME", Type.GetType("System.String")); try { Provider.VistaDB.VistaDBDatabase db = OpenDatabase(cn); db.Connect(); Provider.VistaDB.VistaDBTable table = new Provider.VistaDB.VistaDBTable(db, tableName); table.Open(); string[] indexes = new string[0]; table.EnumIndexes(out indexes); bool active; int orderIndex; bool unique; bool primary; bool descending; string keyExp; if (indexes != null) { foreach (string index in indexes) { table.GetIndex(index, out active, out orderIndex, out unique, out primary, out descending, out keyExp); if (orderIndex != 0) // && keyExp != "PrimaryKey" && keyExp != "PRIMARY_KEY") { if (keyExp != null && keyExp != string.Empty) { string[] columns = keyExp.Split(new char[] { ';' }); foreach (string colName in columns) { metaData.Rows.Add(new object[] { databaseName, tableName, databaseName, index, unique, descending ? 2 : 1, colName }); } } } } } table.Close(); db.Close(); } catch {} return(metaData); }
public DataTable LoadColumns(string cn, string tableName) { DataTable metaData = new DataTable(); metaData.Columns.Add("TABLE_NAME", Type.GetType("System.String")); metaData.Columns.Add("COLUMN_NAME", Type.GetType("System.String")); metaData.Columns.Add("ORDINAL_POSITION", Type.GetType("System.Int32")); metaData.Columns.Add("IS_NULLABLE", Type.GetType("System.Boolean")); metaData.Columns.Add("COLUMN_HASDEFAULT", Type.GetType("System.Boolean")); metaData.Columns.Add("COLUMN_DEFAULT", Type.GetType("System.String")); metaData.Columns.Add("IS_AUTO_KEY", Type.GetType("System.Boolean")); metaData.Columns.Add("AUTO_KEY_SEED", Type.GetType("System.Int32")); metaData.Columns.Add("AUTO_KEY_INCREMENT", Type.GetType("System.Int32")); metaData.Columns.Add("DATA_TYPE_NAME", Type.GetType("System.String")); metaData.Columns.Add("NUMERIC_PRECISION", Type.GetType("System.Int32")); metaData.Columns.Add("NUMERIC_SCALE", Type.GetType("System.Int32")); metaData.Columns.Add("CHARACTER_MAXIMUM_LENGTH", Type.GetType("System.Int32")); metaData.Columns.Add("CHARACTER_OCTET_LENGTH", Type.GetType("System.Int32")); metaData.Columns.Add("DESCRIPTION", Type.GetType("System.String")); metaData.Columns.Add("IS_PRIMARY_KEY", Type.GetType("System.Boolean")); try { Provider.VistaDB.VistaDBDatabase db = OpenDatabase(cn); db.Connect(); Provider.VistaDB.VistaDBTable table = new Provider.VistaDB.VistaDBTable(db, tableName); table.Open(); for (int ordinal = 0; ordinal < table.ColumnCount(); ordinal++) { Provider.VistaDB.VistaDBColumn c = table.Columns[ordinal]; bool b = false; string colName = c.Name; string def = table.GetDefaultValue(colName, out b); int width = c.ColumnWidth; int dec = c.ColumnDecimals; int length = 0; int octLength = width; if (c.Identity) { // While I'll see their point this is not typically how it is done def = ""; } string type = c.VistaDBType.ToString(); switch (type) { case "Character": case "Varchar": length = width; width = 0; dec = 0; break; case "Currency": case "Double": break; default: width = 0; dec = 0; break; } metaData.Rows.Add(new object[] { table.TableName, c.Name, ordinal, c.AllowNull, def == string.Empty ? false : true, def, c.Identity, 1, (int)c.IdentityStep, c.VistaDBType.ToString(), width, dec, length, octLength, c.ColumnDescription, c.PrimaryKey }); } table.Close(); db.Close(); } catch {} return(metaData); }
/// <summary> /// Connects to temporary database. /// After connection created VistaDBDatabase object lose control to database. /// </summary> /// <param name="db">VistaDBDatabase object</param> /// <returns>VistaDBConnection object</returns> public static VistaDBConnection CreateTemporaryDatabase(VistaDBDatabase db) { return(new VistaDBConnection(db)); }
/// <summary> /// Connects to temporary database. /// After connection created VistaDBDatabase object lose control to database. /// </summary> /// <param name="db">VistaDBDatabase object</param> /// <returns>VistaDBConnection object</returns> public static VistaDBConnection CreateTemporaryDatabase(VistaDBDatabase db) { return new VistaDBConnection(db); }
/// <summary> /// Constructor. Set Database and TableName properties. /// </summary> /// <param name="database_">Database object</param> /// <param name="tablename">Table name</param> public VistaDBTable(VistaDBDatabase database_, string tablename) { InitClass(); triggerActive = new TriggerActiveCollection(this); constraintActive = new ConstraintActiveCollection(this); columnCollection = new ColumnCollection(this); Database = database_; tableName = tablename; }