2013-04-11 71 views
-1

當我運行了一個程序,按我的登錄按鈕,一個是說缺少連接或連接字符串 連接字符串已經存在缺少的連接或connstr德爾福

procedure TFmLogin.BtnLogin2Click(Sender: TObject); 
begin 
    ADOUser.ConnectionString:=Connstr; 
    ADOUser.TableName:='TblUser'; 
    ADOUser.Open; 
    if ADOUser.Locate('Username', EdUsename.Text,[]) then  
    begin 
    if EdPassword.Text=ADOUser['Pword'] then 
    begin 
     if ADOUser['AdminLevel']>=0 then 
    begin 
    FmBrowse.Delete; 
    Close 
    end 
    else 
    showmessage('password invalid.'); 
    End; 
    end 
    else 
    Begin 
showmessage('Username invalid.'); 
    end; 
    Close; 
end; 

我不能在任何地方在此過程中發現它應該尋找一個連接字符串,並想知道是否有人可以幫助我找出我出錯的地方

+1

什麼在'ConnStr'?您不會顯示它正在被聲明或任何值被分配給它。我認爲,這是顯而易見的首要目標。 – 2013-04-11 12:24:51

+0

它被全局分配, – 2013-04-11 12:36:39

+0

Const \t ConnStr ='Provider = Microsoft.Jet.OLEDB.4.0; Data Source = cardb.mdb; Persist Security Info = False'; – 2013-04-11 12:37:06

回答

0

通常在ADO中你必須寫出你的數據庫的完整路徑。

而你的是

Const ConnStr='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cardb.mdb;Persist Security Info=False'; 

嘗試改變源= cardb.mdb;到Source = [[full path]] \ cardb.mdb;

希望這個工程。

0

只要數據庫與正在編譯可執行文件的位置在同一位置,路徑就無關緊要。如果不是,那麼你需要把完整的路徑作爲Dreamer64建議+ 他連接auth之前,我認爲他錯過了他的用戶名connections字符串和密碼沒有保存在組件上。嘗試:

Const ConnStr='Provider=Microsoft.Jet.OLEDB.4.0;'+ 
'Persist Security Info=False;'+ 
'User ID=[yourdbusername];'+ 
'Initial Catalog=[yourtablename];'+ 
'Data Source=cardb.mdb;'; 

現在您ado component右鍵單擊它並編輯字符串,旁邊的構建字符串,第一個標籤應您呈現的路徑的用戶名和密碼填寫密碼和測試連接,如果測試成功,你已準備好出發。