我使用ado连接sql数据库,因为要写connectstring,移到另一台机子的时候,又要重新填写,如何可以不这样?

解决方案 »

  1.   

    :),把SQL Server Name存放到ini文件里面,只需要改文件里面的servername就行了。不需要改程序。
      

  2.   

    密码怎么办?
    ini文件用什么方法读?
    没有别的办法?
      

  3.   

    INI文件通过Tinifile类来读取。
      

  4.   

    存入到注册表里,保密好
    TRegistry
      

  5.   

    function GetRegistryValue(KeyName: string): string;
    var
      Registry: TRegistry;
    begin
      Registry := TRegistry.Create(KEY_READ);
      try
        Registry.RootKey = HKEY_LOCAL_MACHINE;
        // False because we do not want to create it if it doesn't exist
        Registry.OpenKey(KeyName, False); 
        Result := Registry.ReadString('VALUE1');
      finally
        Registry.Free;
      end;
    end;
      

  6.   

    可是,每放一台机子上就要改一下密码,总不能再做一个密码输入的窗口,加密了后在写到ini文件里,要是那样,我不如直接通过窗口串到程序里,乞不更好
     用winnt集成安全设置可以吗?他和用‘指定的名称和密马’哪一个更好?
      

  7.   

    关键是我的程序最终要发给别人,而并不值那边的sql密码
      

  8.   

    密码可以加密后存储
    对.INI文件的操作可以通过Windows API函数来实现附函数:
    GetPrivateProfileInt           从.INI文件中取得指定节指定键名的整型数信息
    GetPrivateProfileSection       从.INI文件中取得指定节的信息
    GetPrivateProfileSectionNames  从.INI文件中取得所有节的名称
    GetPrivateProfileString        从.INI文件中取得指定节指定键名的字符串信息
    GetPrivateProfileStruct        从.INI文件中取得指定节指定键名的结构数据信息
    WritePrivateProfileSection     往.INI文件中写入指定节指定键名的整型数信息
    WritePrivateProfileString      往.INI文件中写入指定节指定键名的字符串信息
    WritePrivateProfileStruct      往.INI文件中写入指定节指定键名的结构数据信息
      

  9.   

    不错,读取INI文件的时候,如果读到的server name和password值为空,那么,就弹出窗口让对方去输入,输完后,对密码加密,保存在INI文件里面。