如何是程序和数据库真正的关联起来(100分)

  • 主题发起人 主题发起人 studing
  • 开始时间 开始时间
S

studing

Unregistered / Unconfirmed
GUEST, unregistred user!
(我是一个菜鸟)我用delphi5编了一个小数据库管理程序(就是一些查询,添加。。等),
当拷到别的机器(没有装delphi)上时提示错误(当然在本机用着正常),还有就是用delphi5
自己带的制作安装程序制作安装程序,安装后提示找不到数据库文件,是不是此安装程序使用时
还有需要注意的地方呀(比如,在程序与数据库的连接方面)。忘各位老鸟能给在下指点迷径,

 
与数据库的连接不要使用绝对路径,使用BDE在打包的时候要将BDE包含进去。
 
建议使用Ini文件保存数据库的连接信息(路径,驱动。。。。)或直接写在程序中。
 
改用ADO吧,可以不需要安装客户端什么的,只要98se以上都可以
就算是95,98也可以安装MS的数据控件
 
看看再说
 
最好用ADO,如不想用,写数据库路径时用相对路径。
 
用ADO吧,感觉挺方便的。
用Ini 文件来保存一些设置会增加法软件的适应性。^_^
 
使用ado或者bde来连接数据库都可以,
类似的方法论坛里特别多.
 
在论坛里找找吧,很多这样的问题!
 
飘摇客:请问怎么用Ini文件保存数据库的连接信息(路径,驱动。。。。)或直接写在程序中,
能不能给我说说呀!先谢了
 
用Ado的话可以直接写在程序中,最好将数据跟程序文件放在同一个目录下,这样就可以
这样做:
G_AppDirect:=ExtractFilePath(Application.ExeName);//应用程序目录全局变量
ss:=G_AppDirect+'Manage.mdb'; //manaage.mdb是要使用的access数据库。
ConnectString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ss+';Persist Security Info=False';
Adoconnection1.ConnectionString:=connectstring;
Adoconnection1.Connected:=true;
connectionstring对不同的数据库设置不同,你可以先用Adoconnection控件先连接好实际
的数据库,再将它的ConnecionString拷贝出来,在代码中将数据库路径及文件名部分
改为上述的ss。
 
我试过了,在安装delphi 的机器上可以用,但是卸载掉delphi后,安装此数据库程序的安装程序
后,却提示db...错误,是不是数据库还是没有连接好呀!
 
你用的是bde连接吧,应该是bde没有一起打包进去。
 
如果只用pradox,先給你一個簡單的方法,將下列文件(在你的bde路徑下),同exe文件放在同一目錄下,再其他機器上就可以了.
當然,在程序的數據庫連接時不要用絕對路徑,也不要用別名.以後可以看一下delphi帶的打包程序,那是最好的實現方法.將bde打包進去.
usa.btl,idsql32.dll,idr20009.dll,idpdx32.dll,idbat32.dll,idapi32.dll,
fareast.btl,charset.cvb,blw32.dll,bantam.dll,_isreg32.dll
 
数据库是pradox,可是怎么才能同bde一起打进去呀!(我是不是很菜呀!),望各位能给在下帮助,谢了!
 
如果使用pradox,就不用打bde进去,如果是别的数据库,就要打bde
配置odbc的原理就是修改注册表,并添加健值。我这里说说如何打包系统DSN:
请注意:我是在打包的时候设置odbc,而并非在程序里

运行install shield express for d5打包程序,其中有一项Make Registry
Changes,这底下有两个子项Keys,Values.进去后可以对注册表进行修改,在这里的修改
和对本地注册表修改的操作类似。
至于如何修改注册表,步骤如下:
---- 1.在HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/ODBC Data Sources中增加一
个字符串键值,为MyAccess = Microsoft Access Driver(*.mdb),其中分别为数据源名
称和数据库类型.这是在注册表中注册一个系统DSN名称.
---- 2.在HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI中创建一个子键(SubKey)MyAc
cess,即创建一个键为HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/MyAccess,然后
在其下创建一些键值,详细描述一个系统DSN的配置信息,主要信息有([]中的内容为笔
者注释):
DBQ=C:/Inetpub/wwwroot/Test.mdb
[字符串,表示数据库路径]
Description=我的ACCESS
[字符串,表示数据库描述]
Driver=C:/PWIN98/System/odbcjt32.dll
[字符串,表示驱动程序,可见ODBCINST.INI]
DriverId=0x00000019(25)
[数字,表示驱动程序标识,不能改变]
FIL=Ms Access;
[字符串,可能与过滤Filter有关]
SafeTransaction=0x00000000
[数字,可能表示支持事务性操作的个数]
UID=""
[字符串,表示用户名称,此处为空字符串]
---- 3.在HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/MyAccess中创建一个子键(Su
bKey)Engines, 再在其下创建子键(SubKey)Jet,即创建一个键为 HKEY_LOCAL_MACHIN
E/Software/ODBC/ODBC.INI/MyAccess/Engines/Jet,然后在其下创建一些 键值,详细
描述一个系统DSN的数据库引擎配置信息,主要信息有([]中的内容为笔者注释):
ImplicitCommitSync=Yes
[字符串,可能表示是否立即反映数据修改]
MaxBufferSize=0x00000200(512)
[数字,表示缓冲区大小]
PageTimeout=0x00000005(5)
[数字,表示页超时]
Threads=0x00000003(3)
[数字,可能表示支持的最大线程数目]
UserCommitSync=Yes
[字符串,可能表示是否立即将数据修改反映到用户]
----   以上是建立一个系统DSN的基本信息(其它信息如选项或高级选项等信息也在这
里设置,只不过因采用默认信息,注册表里没有列出)
 
kmyan:谢谢指点,但是我得试一下,对了,有没有qq 号呀!有机会,我们好好聊聊?:)
 
没关系,我的QQ:76318318,欢迎交流!
抱歉的是:我的QQ今天出问题了,所以…………
 
如果只是pradox,用我上面的方法就可以了
 
后退
顶部