|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/2/17 8:31:02 |
标题: |
我在win2000+delphi6+远程sqlserver做的软件在没有装sql的机器上不能打开数据库 |
浏览:1761 |
|
加入我的收藏 |
楼主: |
我在win2000server+delphi6+远程sqlserver做的软件在没有装sql的机器上不能打开数据库 (如果装个sql server的客户端就行了),有没有办法不要安装也行呢?(下面客户机安装的是win2000pro)
----------------------------------------------
因为笨,所以问! |
作者: |
|
2004/2/17 8:35:34 |
1楼: |
将sql server的客户端的安装封装在你的软件里。
----------------------------------------------
-
|
作者: |
|
2004/2/17 9:07:41 |
2楼: |
我也是个初学者,不知道说的对不对。你做的是远程的sql server不管你的客户机上安没安sql server客户端,访问的也不是本地的数据库怎么会打不开呢。是不是你数据库自动连接没有做好啊。发段代码,你试试。使用Delphi自带的DataBase数据库连接控件可以很好的实现SQL数据库的自动连接。 procedure ConnectDatabase(ServerName,DatabaseName,UserName,PassWord:String); var Database1:TDataBase; begin Database1.DatabaseName := ’Test’; Database1.DriverName := ’MSSQL’; LoginPrompt := False; with Database1.Params do begin Add(’DATABASE NAME=’ + DatabaseName); Add(’SERVER NAME=’ + ServerName); //ServerName也可以是SQL服务器的IP地址 Add(’USER NAME=’ + UserName); //设置MSSQL数据的用户名称 如:sa Add(’OPEN MODE=READ/WRITE’); ADd(’SCHEMA CACHE SIZE=8’); Add(’BLOB EDIT LOGGING=’); Add(’LANGDRIVER=’); Add(’SQLQRYMODE=’); Add(’SQLPASSTHRU MODE=SHARED AUTOCOMMIT’); Add(’DATE MODE=0’); Add(’SCHEMA CACHE TIME=-1’); Add(’MAX QUERY TIME=300’); Add(’MAX ROWS=-1’); Add(’BATCH COUNT=200’); Add(’ENABLE SCHEMA CACHE=FALSE’); Add(’SCHEMA CACHE DIR=’); Add(’HOST NAME=’); Add(’APPLICATION NAME=’); Add(’NATIONAL LANG NAME=’); Add(’ENABLE BCD=FALSE’); Add(’TDS PACKET SIZE=4096’); Add(’BLOBS TO CACHE=64’); Add(’BLOB SIZE=32’); Add(’PASSWORD=’ + PassWord); //设置MSSQL用户口令; end; try Database1.Connected := true; Query1.DatabaseName := ’Test’; ... //数据库查询 Except Application.MessageBox(’数据库连接错误!’,’错误’,MB_OK+MB_ICONERROR); end; end;
----------------------------------------------
-
|
作者: |
|
2004/2/17 11:46:53 |
3楼: |
1楼的大哥,如果要封装的话怎么封装?(我很菜的)越具体越好!!
----------------------------------------------
因为笨,所以问!
|
作者: |
|
2004/2/17 11:51:06 |
4楼: |
2楼的大哥,我那个打不开不是指好像文件类型不知道的打不开,而是指连不到数据库的打不开, 你上面的这个程序如果我是用ado做的话,能不能用呀?我现在在单位里没办法试
----------------------------------------------
因为笨,所以问!
|
作者: |
zpeihe (stanley) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/2/17 13:54:13 |
5楼: |
我也想知道啊,每次都要在WIN200上安装sql server的客户端,真的很麻烦也.......
----------------------------------------------
I just loving Delphi
|
作者: |
|
2004/2/17 14:05:10 |
6楼: |
好像不用每次装客户端,记得是打包几个DLL文件,在搜索引擎搜索一下,应该有相关资料。
----------------------------------------------
=^@^=
|
作者: |
|
2004/2/17 14:09:17 |
5楼: |
很简单,不要封装
在ADOConnection控件的ConnectionString属性设置就行了。
如果用的是WIn98系统,而你的SQL服务器不是用的默认实例,那要在Win98系统上安装MDAC 2.7。
也就是说你能用ODBC连接测试成功,那用软件也可以。
我开发了不少企业软件,都是用的SQL2000,根本就不存在要用安装SQL客户端,而SQL客户端只是用来管理数据库的。
除非你用了SQL2000的组件,比如:SQL-DMO。建议少用或不用。
----------------------------------------------
Delphi 免费组件提供 http://www.delphi-free.com
|
作者: |
|
2004/2/21 12:34:31 |
7楼: |
楼上的朋友,你每次给人家做的项目都不封闭,不发布吗?连源码也给人家看啊。 6楼的朋友说发布的时候要的几个dll文件我以下面提供一下。顺随说一下发布的过程。 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目录中,不过lixaohan个人倾向于拷贝到安装目录,以便反安装的时候可以彻底的删除它们.
4.如果你的程序运行比较简单(比如只有一个网段)现在你已经大功告成了,但不幸的是大多数人的网络环境没有如此简单,下面还要修改注册表:
修改键值:
其中DSQUERY设定默认的连接协议,这里设定的是IPX,128.1.1.1则是专有的连接,这里是设定一个连接名称为128.1.1的连接,使用TCP/IP协议,IP地址为128.1.1.1,你也可以把键名改成其他名称,只要与你的别名中SERVER NAME一项相同即可.
至此,你的安装盘已经做成,现在只需要Building一下就可以了
----------------------------------------------
-
|
|