[.NET][ADOX] 新增欄位

  • 4155
  • 0
  • 2011-03-08

[.NET] [ADOX] 新增欄位

有時候需要使用ADOX去建立新增的資料表或資料庫,可參考[.NET][ADOX] 創建ACCESS資料庫 & 資料表做前置設定。

 

現在已經有可使用的資料表以及資料庫,且現在需要新增欄位:

 


		// 可用的資料庫
// ADOX::CatalogClass^ cat
// 可用的資料表
// ADOX::TableClass^ ptb;
///////////////////////////////////////////////////

String^ sFieldName="ID";
ADOX::ColumnClass^ col=gcnew ADOX::ColumnClass();
col->ParentCatalog=pcat;

// 設定欄位名稱
col->default=sFieldName;

一些其他的欄位設定:


		// 決定欄位是否可為空值
col->Properties["Nullable"]->default=true;

// 決定欄位是否可為長度零的字串
col->Properties["Jet OLEDB:Allow Zero Length"]->default=false;

// 決定欄位是否會自動遞增
col->Properties["AutoIncrement"]->default=true;

//決定欄位是否長度固定
col->Attributes=ADOX::ColumnAttributesEnum::adColFixed;

//決定欄位是否可為空值
col->Attributes=ADOX::ColumnAttributesEnum::adColNullable;

Note:Properties及Attributes無法同時使用,否則會產生Exception Error如下:

[Additional information: 多重步驟 OLE DB 操作發生錯誤。請檢查每一個可用的 OLE DB 狀態值。尚未完成任何操作。]

 

列出一些可能會需要的資料型態設定:

1. 需要新添加數字資料型態:


		col->Type=ADOX::DataTypeEnum::adInteger;
ptb->default->Append(col, ADOX::DataTypeEnum::adInteger, 0);

2. 需要新添加雙精準度的數字資料型態:


		col->Type=ADOX::DataTypeEnum::adDouble;
ptb->default->Append(col, ADOX::DataTypeEnum::adDouble, 0);

3. 需要新添加文字資料型態:


		ptb->default->Append(col, ADOX::DataTypeEnum::adVarChar, 30);

4. 需要新添加日期資料型態:


		col->Type=ADOX::DataTypeEnum::adDate;
ptb->default->Append(col, ADOX::DataTypeEnum::adDate, 0);

 

Note:若文字資料類型同日期、數字等有先定義的話,則會產生Exception Error如下:

Additional information: 類型無效。

若日期、數字等沒先定義,會導致資料仍是文字型態的資料類型。

 

撰寫工具:VS2008 VC.NET

 

沒試過,別說你不行!該努力就去努力,別過了再說後悔。

〈請多指教,新手上路〉