菜鸟问题:如何让TADOConnection不弹出数据库登录对话框,通过什么方法在程序中设定 userid和password

解决方案 »

  1.   

    LoginPrompt设为False数据库用户名、密码可以存在INI文件里面
      

  2.   

    INI文件怎么写,能举个例子吗?谢谢!
      

  3.   

    求教:
      怎么写那个ini文件
      

  4.   

    要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考:
    从.INI文件中获取字符串
    var
    strResult:pchar;
    begin
    GetPrivateProfileString(
    'windows', // []中标题的名字
    'NullPort', // =号前的名字
    'NIL', // 如果没有找到字符串时,返回的默认值
    strResult, //存放取得字符
    100, //取得字符的允许最大长度
    'c:\forwin95\win.ini' // 调用的文件名
    );
    edit1.text:=strResult; //显示取得字符串
    从.INI文件中获取整数
    edit1.text:=inttostr(GetPrivateProfileInt(
    'intl', // []中标题的名字
    'iCountry', // =号前的名字
    0,// 如果没有找到整数时,返回的默认值'c:\forwin95\win.ini' // 调用的文件名
    ));
    向.INI文件写入字符串
    WritePrivateProfileString(
    'windows', // []中标题的名字
    'load', // 要写入“=”号前的字符串
    'accca', //要写入的数据
    'c:\forwin95\win.ini' // 调用的文件名
    );
    向.INI文件写入整数
    WritePrivateProfileSection(
    'windows', // []中标题的名字
    'read=100', // 要写入的数据
    'c:\forwin95\win.ini' // 调用的文件名
    );
      

  5.   

    TADOConnection的LoginPrompt转置为False关于UserId和PassWord,我觉得写入注册表较写入INI安全一点~!
      

  6.   

    在 ConnectString 中写用 User =xxx; password =xxxx;
      

  7.   

    关于UserId和PassWord,我觉得写入注册表较写入INI安全一点~!虽然微软推荐这么做,但是注册表庞大以后会影响操作系统的运行。
    可以对userid ,pw进行加密。解密操作比较好
      

  8.   

    加入DataBase控件,并连接TQuery控件,设置LoginPrompt:=False
      

  9.   

    user 和 pass我是用ini文件写的
    这样如果万一数据库中的user 和 pass改了那么只要在ini文件中改一下就行了.
    而在启动本程序时,在主窗体的onshow或onactive或oncreate中从ini文件中读取connection
    的connectionstring属性
    不用改什么注册表,为了安全你可为ini文件加密或放在一个比较安全的目录下面
    让TADOConnection不弹出数据库登录对话框:将LoginPrompt设为False
      

  10.   

    用ADO访问数据库的话,把连接字字符串中的那个保存密码的勾给勾上就行了呀!
      

  11.   

    LoginPrompt设为False,userID 和password在database的params中添加。
    如:
    Database.Params.Add('Server Name='+ ServerName)//设置数据库路径; 
    Database.Params.Add('Database Name='+ DatabaseName)//设置数据库路径; 
    Database.Params.Add('User Name='+ UserName)//设置数据库路径; 
    Database.Params.Add('Password='+ Password)//设置数据库路径;
      

  12.   

    TADOConnection的LoginPrompt转置为False
    往注册表里和往INI文件里写都行
    INI的例子如下:
    unit IniUnit;
    interface
    usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, inifiles;
    typeTIniForm = class(TForm)SectionComboBox: TComboBox;Label1: TLabel;CmdSave: TButton;CmdChang: TButton;IdentComboBox: TComboBox;IdentValueEdit: TEdit;Label2: TLabel;Label3: TLabel;procedure FormCreate(Sender: TObject);procedure SectionComboBoxChange(Sender: TObject);procedure FormDestroy(Sender: TObject);procedure CmdChangClick(Sender: TObject);procedure CmdSaveClick(Sender: TObject);procedure IdentComboBoxChange(Sender: TObject);private{ Private declarations }public{ Public declarations }end;
    varIniForm: TIniForm;{ Delphi中通过TIniFile类读写Windows的初始化文件 }IniFile: TIniFile;
    implementation
    {$R *.DFM}
    procedure TIniForm.FormCreate(Sender: TObject);begin{ 使用TIniFile类的Create成员函数建立TIniFile对象,该对象用来读写d:\ucdos目录中的rdfnt.ini文件,如果读写的文件在Windows的目录里(如system.ini),则可以直接写文件名而不必指定路径 }IniFile:=TIniFile.Create('d:\ucdos\rdfnt.ini');{ 将TIniFile对象关联的初始化文件system.ini中的所有节(即用[]括号括起的那部分)的节名送入下拉式组合列表框SectionComboBox中 }SectionComboBox.Clear;IniFile.ReadSections(SectionComboBox.Items);{ 选择system.ini文件的第一个节名 }SectionComboBox.ItemIndex:=0;SectionComboBoxChange(Sender);CmdSave.Enabled:=False;end;
    { 将组合列表框IniComboBox中所选择节中对应的各个变量及对应的值送入多行文本编辑器IniMemo中 }procedure TIniForm.SectionComboBoxChange(Sender: TObject);beginIdentComboBox.Clear;IniFile.ReadSection(SectionComboBox.Text,IdentComboBox.Items);IdentComboBox.ItemIndex:=0;IdentComboBoxChange(Sender);end;
    procedure TIniForm.IdentComboBoxChange(Sender: TObject);beginIdentValueEdit.Enabled:=False;{ 将选择的关键字值读入 }IdentValueEdit.Text:=IniFile.ReadString(SectionComboBox.Text,IdentComboBox.Text,'');end;
    procedure TIniForm.CmdChangClick(Sender: TObject);beginCmdSave.Enabled:=True;IdentValueEdit.Enabled:=True;IdentValueEdit.SetFocus;end;
    procedure TIniForm.CmdSaveClick(Sender: TObject);beginif IdentValueEdit.Modified then beginIniFile.WriteString(SectionComboBox.Text,IdentComboBox.Text,IdentValueEdit.Text);end;IdentValueEdit.Enabled:=False;CmdSave.Enabled:=False;end;
    procedure TIniForm.FormDestroy(Sender: TObject);beginIniFile.Free; { 释放创建的对象 }end;
    end.
      

  13.   

    ADOConn.ConnectionString := 'Provider=OraOLEDB.Oracle.1;Password=tiger;Persist Security Info=True;User ID=scott;Data Source=zrh';ADOConn.LoginPrompt := false;
    ADOConn.Connected := true;
      

  14.   

    ADOCONNECTION.loginprompt:=false;
    另外我觉得用户名,密码还是保存在注册表里比较好,藏的深一点,这样即使懂注册表想找到的话也得花些工夫!
      

  15.   

    LoginPrompt设为False
    用户名,密码不管写在哪里,都建议采用异或加密