DOBON.NETプログラミング掲示板過去ログ
【C#】ADOX_'System.Runtime.InteropServices.COMException'について
題名: 【C#】ADOX_'System.Runtime.InteropServices.COMException'について
著者: talman
日時: 2011/05/18 16:44:11
ID: 28584
この記事の返信元:
(なし)
この記事への返信:
(なし)
ツリーを表示
環境/言語:[C# VisualStudio2008 NET Framework3.5]
分類:[.NET]
いつもお世話になっております。
質問をお願い致します。
ADOXを使用して、MDBファイルの出力を行っております。
以下のようなメソッドを作成して、MDBファイル、TBLの作成は想定の通りできるのですが、デバックを行っていたところ、ADOX.TableClassをインスタンス化した際に、
"COMException"というキャッチされない例外が確認されました。
一応、目的のファイルは作成できているのですが、今後のことを考えると気になってしまうので、アドバイスを頂けないでしょうか?
//メイン処理
void main()
{
string DBSource = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\DB\\DB.MDB; Jet OLEDB:Engine Type=5";
// データソースの作成を行う
ADOX.CatalogClass catalog = new ADOX.CatalogClass();
catalog.Create(DBSource);
CreateTblClass createTblClass = new CreateTblClass();
createTblClass .CreateTbl(catalog);
}
public void CreateTbl(CatalogClass catalog)
{
// テーブルを作成する(TEST_TBL)
/*ここで、「キャッチされない"COMException"が発生します」*/
ADOX.TableClass table = new ADOX.TableClass();
table.ParentCatalog = catalog;
table.Name = "TEST_TBL";
// テストコード列の作成(TEST_CD)
ADOX.ColumnClass columnTestCd = new ADOX.ColumnClass();
columnTestCd.ParentCatalog = catalog;
//列名を設定
columnTestCd.Name = "TEST_CD";
//桁数を設定
columnTestCd.DefinedSize = 8;
//型を設定
table.Columns.Append(columnTestCd, ADOX.DataTypeEnum.adVarChar, columnTestCd.DefinedSize);
//プライマリーキーの設定
table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "TEST_CD", "", "");
catalog.Tables.Append(table);
}
以下のように表示されます。
名前:ParentCatalog
値:'table.ParentCatalog' は、型 'System.Runtime.InteropServices.COMException' の例外をスローしました。 ADOX.Catalog {System.Runtime.InteropServices.COMException}
どうぞ、宜しくお願い致します。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
いつもお世話になっております。
質問をお願い致します。
ADOXを使用して、MDBファイルの出力を行っております。
以下のようなメソッドを作成して、MDBファイル、TBLの作成は想定の通りできるのですが、デバックを行っていたところ、ADOX.TableClassをインスタンス化した際に、
"COMException"というキャッチされない例外が確認されました。
一応、目的のファイルは作成できているのですが、今後のことを考えると気になってしまうので、アドバイスを頂けないでしょうか?
//メイン処理
void main()
{
string DBSource = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\DB\\DB.MDB; Jet OLEDB:Engine Type=5";
// データソースの作成を行う
ADOX.CatalogClass catalog = new ADOX.CatalogClass();
catalog.Create(DBSource);
CreateTblClass createTblClass = new CreateTblClass();
createTblClass .CreateTbl(catalog);
}
public void CreateTbl(CatalogClass catalog)
{
// テーブルを作成する(TEST_TBL)
/*ここで、「キャッチされない"COMException"が発生します」*/
ADOX.TableClass table = new ADOX.TableClass();
table.ParentCatalog = catalog;
table.Name = "TEST_TBL";
// テストコード列の作成(TEST_CD)
ADOX.ColumnClass columnTestCd = new ADOX.ColumnClass();
columnTestCd.ParentCatalog = catalog;
//列名を設定
columnTestCd.Name = "TEST_CD";
//桁数を設定
columnTestCd.DefinedSize = 8;
//型を設定
table.Columns.Append(columnTestCd, ADOX.DataTypeEnum.adVarChar, columnTestCd.DefinedSize);
//プライマリーキーの設定
table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "TEST_CD", "", "");
catalog.Tables.Append(table);
}
以下のように表示されます。
名前:ParentCatalog
値:'table.ParentCatalog' は、型 'System.Runtime.InteropServices.COMException' の例外をスローしました。 ADOX.Catalog {System.Runtime.InteropServices.COMException}
どうぞ、宜しくお願い致します。