我的app中有一个实现,只有当我的可执行文件与数据库在同一台机器上时才能运行。
我的连接字符串包含服务器地址。如果本地机器可能是127.0.0.1,localhost或其他东西(例如别名)。
有没有办法断言测试连接字符串中的服务器是否恰好是本地计算机?
答案 0 :(得分:3)
强制local transport protocol
(请参阅connection string FAQ)将强制建立本地连接。
请注意,使用FireBird 2.0时,local transport protocol
的基础实现已更改为XNET
你不应该注意到任何差异。
注意:请勿尝试将TCP/IP
和local transport protocol
混合用于InterBase 6.0及更低版本,因为错误可能导致数据损坏。
将这两者与Firebird混合应该没问题。
- 的Jeroen
答案 1 :(得分:0)
只需在连接中将数据库的IP地址设置为127.0.0.1。如果失败,那不是本地机器。
注意:如果您在托管该数据库+未正确配置数据库的计算机上执行代码,这也可能会失败...
答案 2 :(得分:0)
对于完全不同的方法:
在数据库中创建两个存储过程。
在你的应用中:
请注意驱动器映射(以便检查返回的文件名中的驱动器是否是本地驱动器而不是映射驱动器)和unc文件名(检查机器名称是否与本地计算机相同)。 / p>