我希望把我的数据库程序和一个数据库文件一起分发,
且要保证最终用户无须任何的设置,
安装成功就能投入使用?
请各位指导其中的关键有哪几步?
且要保证最终用户无须任何的设置,
安装成功就能投入使用?
请各位指导其中的关键有哪几步?
解决方案 »
- TComboBox的BUG?
- 使用TIdHTTP获取网页的中文乱码问题
- 如何使电脑屏幕不显示时间栏
- Dll中的MDI子窗口为何在MDI父窗口中不能计数?
- 如何在dbgrid中,浏览两个表中的内容??
- 一个关于 format函数的问题
- 要使用回车键使光标在dbgrid的同一行的不同列之间切换该怎么办???
- CreateOleObject('Word.Application')出现OLEsysError:消息筛选程序表明应用程序正忙?
- 我碰到一个非常棘手的问题,关于动态创建窗体的
- 100分相送:一个关于摄像头的问题
- 今天偶生日,散分
- 关于使用TAdoQuery查询Access中日期字段的问题?(在线等代)?
我想知道的是如何安装后就使你的ADO的连接串指向用户指定的安装目录
例如:
如果你的数据库在程序主目录,则'c:\delphi\project\MyData.MDB'改为'MyData';
如果在程序主目录下的子目录,则'c:\delphi\project\DB\MyData.MDB'改为'.\DB\MyData';
编译后就可以发布了。
建议数据库路径放在INI文件中,这样在安装时可由安装程序帮你设定好!
这是为什么 我的BDE 可是用的好好的,
还有一个问题就是这些注册的路径信息是供谁使用的呢是由哪个控件读取的吗
请指教 谢谢
下面试使用当前路径,my database pasee word is 1234,str1,str3,curpath,connstr是变量:
Str1:='Provider=Microsoft.Jet.OLEDB.4.0;user ID=Admin;';
Str3:='Persist Security Info=False';
CurPath:=ExtractFilePath(Application.ExeName);
if adoconnection1.Connected= false then
begin
ADOConnection1.Close;
connstr:=str1+'Data Source='+CurPath+'DBase.mdb'+';'+'Jet OLEDB:Database Password="1234"'+';'+str3;
adoconnection1.ConnectionString := Connstr;
adoconnection1.Open;用opendialog:
Str1:='Provider=Microsoft.Jet.OLEDB.4.0;user ID=Admin;';
Str3:='Persist Security Info=False';
if Opendialog1.Execute then
connstr:=str1+str2+'Data Source='+Opendialog1.FileName+';'
+'Jet OLEDB:Database Password="1234"'+';'+str3
;
adoconnection1.ConnectionString := Connstr;
adoconnection1.Open;
/////////////////////////////////////////
方法可能有点拙笨,但屡试不爽!!
1、在你的工程目录下搞一个database目录,然后把数据文件放进去(比如:db1.mdb).2、adoconnection的connectionstring写成
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database\db1.mdb;Persist Security Info=False3、如果connected设为TRUE,一切ok的话,那就可以了4、发布:发布你的程序和你的数据库,保持目录结构不变。即:在你的程序的目录下包括database目录,db1.mdb in it.
个人认为确实你的方法很简单(我也是用这种方法的),但
初始化时速度我认为真的很慢,因为每当程序启动时它都要
去建立一个新的dsn,如果是固定dsn则可使这一过程变得更有效率
同意你的看法, 对于ADO +ACCESS 的小项目,你这种方法足以应付!
还有一种方法就是用 连接串.属性.项目.[name].value来实现,我现在就用这种方法,而且我的ADO+SQLSERVER也是如此.各们可以试试!