我遇到了真正的砖墙试图连接到动态数据库。我不知道如何实现这一目标,
这是我的流程,我有一个应用程序,它需要适应工作环境的变化,比如说工作会使服务器崩溃并且他们创建一个名为db_new
的新数据库,应用程序将连接而不是旧的数据库名称。
我已经有一个窗口,在列表框中显示服务器上的数据库,用户可以在其中指定要用于应用程序的数据库。但问题是,如何保存选定的数据库名称,以便在选择新数据库后运行? ..
因为管理员应该能够在必要时更改应用程序使用的数据库,并且应用程序应继续使用该选定的数据库,直到管理员将其更改回新的数据库。
如果问题有点模糊,请原谅,我只是以最好的方式把它放在一起,对此的任何帮助都会非常棒:)
修改
我不能使用文本文件或xml作为应用程序使用的数据库名称,应以安全的方式存储。 :)
答案 0 :(得分:1)
首先,您可以非常轻松地使用文本或XML文件:如果您将信息存储在文件中,用户无法下载(我认为您会这样),这就像它一样安全可能是:如果某人设法闯入服务器并阅读该文件,那么无论如何它都是游戏。
也就是说,我建议您使用MySQL代理或类似的机制并将WebApp指向它 - 然后可以在代理层处理故障转移到另一个数据库或更改底层数据库,而WebApp甚至不知道它:功能不一定是您的应用程序的一部分,在我的书中它不应该。
答案 1 :(得分:0)
您尚未告诉我们您使用的语言。因此,我们无法提供很好的建议。
我的第一个想法:
如果这是PHP,你可以让普通应用使用类似的东西,
$db->execute('sql statement here');
然后让管理员在需要时更改当前的$ db。这样,$ db-> execute()将始终在“当前”数据库上执行。
编辑:这应该仍然适用于C#。如果您使用数据库的函数调用一个当前数据库连接的变量,那么您应该能够在需要时将数据库连接更改为正确的数据库,而其余部分继续运行,因为它只是同一个变量。