2013-10-14 3 views
3

생성 된 테이블에 항목이 있는지 여부를 알아야합니다.테이블이 비어 있는지 확인하십시오. (MSAccess Database + Delphi)

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; 

그러나이 기능은 테이블의 상태에 관계없이 true를 돌려 : I는 무엇이 필요

, 내가 할 목적으로 작성했습니다 무엇

if (TableIsEmpty) then 
    do_something 
else 
    do_something_else; 

입니다!

편집 *** 수정 된 코드 :

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 문 후 "수 (1) TABLENAME에서 선택"하고 반환하는 방법을 많은 레코드를 참조? –

+0

Adotable을 활성화로 설정하지 않으므로 항상 사실로 나타납니다. ADOTable1.Connection을 사용할 경우 ADOTable1.ConnectionString을 사용하는 BTW는 필요하지 않습니다. – bummi

+0

결과가 false가 아닌 것으로 나타납니다. @ bummi. – Priyabrata

답변

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

실행이

+0

수정 된 코드를 기본 게시물에 추가했습니다. 항상 false를 반환합니다. – Priyabrata

+0

당신이 디버그 모드에있을 때 RecordCount의 값은 어느 것입니까? – Hidden

+0

알겠습니다. 해결 : – Priyabrata

관련 문제