delphi 安装程序如何将SQL Server和后台数据库打包发行?(200分)

  • 主题发起人 主题发起人 you_99
  • 开始时间 开始时间
Y

you_99

Unregistered / Unconfirmed
GUEST, unregistred user!
我的前台开发程序是DELPHI,后台是SQL Server,我做了一些准备工作,如封装MDF
和LDF文件,在注册表里注册ODBC,程序发布时,遇到了错误,错误信息如下:
exception edbengineerror in module wygl.exe at 000c84aa
general sql error
[microsoft][odbc sql server driver][shared memory] sql server 不存在或
访问被拒绝
alias:p_wygl
wygl.exe是我的应用程序名,p_wygl使我的数据库别名。请详细解答,不胜感激

HELP ME​
!!!!
 
数据库文件是要在服务器上的,服务器上的sql server是必须安装的.
客户端只安装mdac就行了.
你把数据库文件打包也没用.
 
哈,不用再按SQL的,
jojo的解决之道:
1.准备一份Install Shield Express,最好是2.01以上的版本,在Delphi的安装盘上有一个专用版本也可以用,按照制作一般程序安装盘的方法建立安装程序,必须安装BDE和SQL LINKS.
2.在你的Windows/System下面找到以下几个文件(当然你的机器必须已经安装SQLServer):
Dbmssocn.dll TCP/IP 支持文件
Dbmsspxn.dll IPX 支持文件
Dbnmpntw.dll 命名管道支持文件
Ntwdblib.dll SQLServer核心文件(这个文件最重要)
3.在Fpecify Components and Files的Groups and Files中,将以上几个文件加入到Program Files中去.当然你也可以建立一个组,将这些文件拷贝到System目录中,不过jojo个人倾向于拷贝到安装目录,以便反安装的时候可以彻底的删除它们.
4.如果你的程序运行比较简单(比如只有一个网段)现在你已经大功告成了,但不幸的是大多数人的网络环境没有如此简单,下面还要修改注册表:
修改键值:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/Client/ConnectTo]
"DSQUERY"="DBNETLIB"
"128.1.1.1"="DBNETLIB,128.1.1.1"
其中DSQUERY设定默认的连接协议,这里设定的是IPX,128.1.1.1则是专有的连接,这里是设定一个连接名称为128.1.1的连接,使用TCP/IP协议,IP地址为128.1.1.1,你也可以把键名改成其他名称,只要与你的别名中SERVER NAME一项相同即可.
至此,你的安装盘已经做成,现在只需要Building一下就可以了.
good lucky!
 
bluebrids 谢谢你的回答!按照你的方法制作的安装程序出现了如下的错误:
exception edbengineerror in wygl.exe at 000c84aa
invalid configuration parameter
alias:p_wygl
我的数据库名字是HXWYGL
在DATABASE控件中将数据库别名命名为P_WYGL
请问如何解决该问题?
 
另:如何在安装程序中配置ODBC?
 
sql server可不可以把这些数据库表生成脚本, 在需要的时候执行一下。
 
你在绑定bde时,有弹出配置数据库别名的地方,你注意一下!
 
bluebrids的这篇语文章我很早就看过了,但我试了n次还是不行,请问我的数据库是生成.sql还是backup还是copy .mdb呢,
 
数据库的话你只是需要sp_attach_db将MDF和LDF两个数据库文件附加即可。
至于别名,数据库应用程序建立时会自动生成一个默认的session,你使用
它进行别名添加即可。
 
你如果选打包工具,我建议你用WISE。你将MDAC和BDE加入其中就可以正常使用数据库了。
在DataMould中放一个DataBase,照下面的例子在DataModuleCreate事件中加入就可以了。
而具体的数据库表,你最好先选择备份,然后在安装过程中用脚本的方式再还原即可。
dbGobal是DataBase。
dbGobal.Params.Clear;
dbGobal.Params.Add('DATABASE NAME='+strData);
dbGobal.Params.Add('SERVER NAME='+strServerName);
dbGobal.Params.Add('USER NAME='+strUser);
dbGobal.Params.Add('PASSWORD='+strPass);
dbGobal.Open;
 
对阿,在程序中避开使用odbc别名,
将database 的drivername 选mssql
然后指定楼上的参数,连结.
发布的时候只需要mdac和bde就可以了
 
我下的wise缺少runtime期文件,一用数据库就出错,
哪里有能用的,介绍以下,或发给我
mail: qitianpan@163.com
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部