背景:连接数据库用ADOQuery控件,但是程序一旦编译完成,如果想更改数据库连接设置还得重新修改ADOQuery的属性重新编译
如果可以在程序中可以随时设置ADOQuery的属性则会方便很多。
实现:调用如下程序可以进行数据库连接属性的设置
- ADOQuery1.ConnectionString:= PromptDataSource(Application.Handle, ADOQuery1.ConnectionString);
ADOQuery1.ConnectionString:= PromptDataSource(Application.Handle, ADOQuery1.ConnectionString);
这句话将你在数据库连接属性对话框中设置的链接属性赋给ADOQuery控件。如下图所示
再得到connectionString后,下一次打开数据库时这个字符串又会为空,是因为ADOQuery对象在程序关闭之后从内存中消失了
你设置的属性也会随之消失,如果想让这个连接字符串一直存在,则需要将ADOQuery对象进行序列化,说白了就是把这个对象
写到 硬盘/文件 上去,delphi中有相应的函数,当然也可以将connectionString自己写到文件中去,每次打开时重新读取一下
原理和将对象序列化是一样的,好处是你可以将connectionString进行加密,免得被别人读取出数据库的密码。
不知道还有没有更好的办法,如果有知道的希望不吝赐教。