2013-04-11 68 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右键单击它并编辑字符串,旁边的构建字符串,第一个标签应您呈现的路径的用户名和密码填写密码和测试连接,如果测试成功,你已准备好出发。