I am using c#.net in the visual studio.
I dynamically create a access db named test.mdb and create a table called city.
However all the columns are required. I found an example (below) to change the field to allow zero length. It runs with no problems but when I open my access db, it still says required and allow zero lenght to NO.
anyone have an idea on how to get this working
// create table
ADODB.Connection Cn = new ADODB.Connection();catalogCls.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=test.mdb;Jet OLEDB:Engine Type=5");
//Open the connection
Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + m_dbname, "", "", 0);
ADOX.Table objTable = new ADOX.Table();
objTable.Name = "City";
objTable.Columns.Append("ID", ADOX.DataTypeEnum.adInteger,8); objTable.Columns.Append("Country", ADOX.DataTypeEnum.adVarWChar, 8); objTable.Columns.Append("State", ADOX.DataTypeEnum.adVarWChar, 8); objTable.Columns.Append("Code", ADOX.DataTypeEnum.adVarWChar, 8); objTable.Columns.Append("Name", ADOX.DataTypeEnum.adVarWChar, 128);catalogCls.Tables.Append(objTable); Cn.Close();
So I use the following code to try to change the column property to all nulls
// open connection ADODB.ConnectionClass conn = new ADODB.ConnectionClass(); conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="test.mdb, "", "", 0);
// Create a catalog ADOX.CatalogClass cat = new ADOX.CatalogClass();cat.ActiveConnection = conn; // fetch the table ADOX.Table table = cat.Tables["city"]; // fetch the column ADOX.Column col = table.Columns["state"]; ADOX.Property prop = col.Properties["Jet OLEDB:Allow Zero Length"]; prop.Value = true;
if (column2.Length > 0) { ADOX.Column col2 = table.Columns[column2]; ADOX.Property prop2 = col2.Properties["Jet OLEDB:Allow Zero Length"]; prop2.Value = true; } // finish up col = null; cat = null; conn.Close(); conn = null;