2016-02-23 69 views
0

我有Delphi 6代碼添加一個位字段到Access表。 我一直無法獲取任何代碼來將'Field Properties.General.Format'設置爲Yes/No。 在現有的表格中,我有其他位域的值爲0或1,它們的格式是'是/否',所以現有的域顯示一個複選框。 ,增加了現場的代碼是...添加一個是/否字段格式=是/否

ADOQuery1.SQL.Text := 'ALTER TABLE MKSystem ADD COLUMN Use_GMK Bit Default 0 not  Null'; 
ADOQuery1.ExecSQL; 

後,我通過ExeSQL執行代碼,我可以查看數據庫,並看到「Use_GMK」被添加到「MKSystem」表和其默認值爲0.該列的「格式」爲空。我嘗試了所有我能想到的將格式設置爲'是/否'但我沒有成功的事情。

檢查以前的帖子後,我還沒有找到關於如何設置「格式」對於此列是任何響應/否

任何援助將不勝感激。

+2

http://stackoverflow.com/questions/5246080/ms-access-alter-table-add-a-new-boolean-column-with-default-value-set-to-false – fantaghirocco

+0

從接受的答案到僞裝:'設置prp = fld.CreateProperty(「格式」,dbText,「是/否」)' –

回答

1

此問題更多鏈接到數據庫格式。 Access是否能夠創建枚舉器格式?

在其他情況下,你應該解釋負荷紀錄後的值,並將其(在這種情況下,你需要實現的代碼加載數據後,也之前保存)前戲。

使用字符串格式

const 
    Enum[0] = 'NO'; 
    Enum[1] = 'YES'; 
begin 
... 
    showmessage(Enum[ADOQuery1.Fieldbyname('Use_GMK').asInteger]); 

或使用布爾格式

const 
    EnumBool[0] = false; 
    EnumBool[1] = true; 
begin 
... 
    CheckBox.checked := EnumBool[ADOQuery1.Fieldbyname('Use_GMK').asInteger]; 

或直接使用布爾本地

procedure TForm1.Button6Click(Sender: TObject); 
begin 
    checkbox1.Checked := boolean(Button6.Tag); // this line can maybe fulfill your needs 
    if Button6.Tag = 0 then 
    Button6.Tag := 1 
    else 
    Button6.Tag := 0; 
End; 

我希望它能幫助,因爲它應該是存儲數據庫適當的價值。 (MySQL有Enum類型允許這種類型的東西)。在其他情況下,只需在顯示之前處理「即時」轉換的值即可。

相關問題