2013-10-14 53 views
3

我需要確定一個創建的表是否包含條目。檢查一個表是否爲空(MSAccess數據庫+ Delphi)

我需要的是,

if (TableIsEmpty) then 
    do_something 
else 
    do_something_else; 

我已經爲宗旨寫爲:

Function IsTableEmpty:Boolean; 
Var 
    DataSource : string; 
Begin 
    DataSource := 
    'Provider=Microsoft.Jet.OLEDB.4.0'+ 
    ';Data Source=c:\mydb.mdb'+ 
    ';Persist Security Info=False'; 

    Form2.ADOConnection1.ConnectionString := DataSource; 
    Form2.ADOConnection1.LoginPrompt := False; 
    Form2.ADOCommand1.Connection := Form2.ADOConnection1; 
    Form2.ADOTable1.ConnectionString := DataSource; 
    Form2.ADOTable1.Connection := Form2.ADOConnection1; 
    if (Form2.ADOTable1.IsEmpty)then 
     result := true 
    else 
     result := false; 
End; 

但這個函數返回無關的表的狀態真!

編輯*** 修改代碼:

Function IsTableEmpty:Boolean; 
Var 
    DataSource, cs : string; 
Begin 
    DataSource := 
    'Provider=Microsoft.Jet.OLEDB.4.0'+ 
    ';Data Source=c:\Users.mdb'+ 
    ';Persist Security Info=False'; 

    Form2.ADOConnection1.ConnectionString := DataSource; 
    Form2.ADOConnection1.LoginPrompt := False; 
    Form2.ADOCommand1.Connection := Form2.ADOConnection1; 
    Form2.ADOTable1.Connection := Form2.ADOConnection1; 
    Form2.ADOTable1.TableName := 'userIdentification'; 
    Form2.ADOTable1.Active := True; 
    cs := 'Select * from userIdentification'; 
    Form2.ADOCommand1.CommandText := cs; 
    Form2.ADOCommand1.Execute; 
    if Form2.ADOTable1.RecordCount <= 0 then 
    result := true 
    else 
    result := false; 
    Form2.ADOConnection1.Close; 
End; 

此函數總是返回false!

+0

可以發出餐桌上的SQL選擇「SELECT COUNT(1)從表名」,看看它有多少記錄返回? –

+0

您錯過了將Adotable設置爲活動狀態,因此您將始終成爲現實。順便說一句,使用ADOTable1.ConnectionString是沒有必要的,如果你使用ADOTable1.Connection – bummi

+0

我得到的結果爲真不假。@ bummi。 – Priyabrata

回答

5
if Form2.ADOTable1.RecordCount =< 0 then 
    do_something 
else 
    do_something_else; 

運行此之後的成功執行select語句

+0

我已將修改後的代碼添加到主帖子中。它總是返回false。 – Priyabrata

+0

當您處於調試模式時,RecordCount具有哪些值? – Hidden

+0

知道了!!解決:) – Priyabrata