在客户那里,我们在服务器上有一个 postgres DB,还有几个客户端。我们通过 ODBC 驱动程序连接它们,所有机器都运行 Windows(通常是 XP)。现在我们遇到了一些恼人的问题:
- 客户端“忘记”了 ODBC 驱动程序中的某些标志,例如 ByteA 作为 LO。每次发生任何变化时,我们都必须重置它,并输入密码,有时甚至输入服务器的 IP。
- 在运行 Windows 7 的 x64 机器上,配置这一点很麻烦,因为系统设置对话框默认只显示 64 位连接。
- 最重要的是:如果服务器因为客户重启或更换交换机而更改 IP,则所有连接都会丢失。令人烦恼的是,仅通过更正 IP 无法解决这个问题,而是我们必须检查每个地方(甚至是 hba_conf),因为所有设置都会神奇地消失。
我们的客户通常都是小公司,其中“服务器”指的是“另一个房间里的一台电脑”,而不是“地牢里的 Oracle 大型机”,所以我们不想依赖他们不重新启动交换机。
除了依赖这些非常不稳定的设置,还有更好的方法吗?这些设置是否位于我可以手动编辑的文件中,以便更轻松地进行修复?
答案1
查看注册表。在 WIn32 中,ODBC 数据系统源位于
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
。检查系统“忘记”之前和之后的设置情况我不记得 64 位 Windows 的这些设置保存在哪里,但它们也在注册表中。Win64 有 2 个 ODBC 位置:一个用于 32 位应用程序,另一个用于 64 位应用程序
他们的服务器是否使用 DHCP?他们不能将服务器 IP 地址设为永久的吗?
答案2
修复如下:
初始化时,解析应用程序中连接字符串的各个部分,并在必要时将标志附加到其中。
只需要一次,因为我可以修复其他问题。仍然不是最佳选择。
使用计算机名称,而不是 IP。数据服务可以轻松使用它。