我用delphi做sql的程序,为什么在只在装有sql数据库的电脑上可以运行,在别的电脑上未响应?

如题所述

可能是SQL服务器配置问题,你试一下打开配置管理器,把TCP/IP协议打开,再重启一下SQL服务

 

追问

本来就是启用的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-15
DELPHI与SQL数据库联合进行的编程,编写出来的东西必须有Delphi和Sql数据库服务的配合,你先需要理清这个概念。在这种方式编写的程序中:
1、你编写出来的程序向数据库服务器读或写数据。这就象一个人向仓库索要,或存入数据一样。
2、这个仓库是已经固有的,你当然也可以自个做仓库,但你自个做仓库的结果是,你要重新建议这个仓库,这对一般人来说,工程量是巨大的,所以,我们一般直接使用别人做好的仓库软件,比如最典型的就是SQL以及Oracle数据库。
3、因此,你“用delphi做sql的程序”只能在有SQL服务支持的情况下运行。
4、当然,这个SQL服务不仅仅是本机的,也可以是网络上,可以联接到的另一台电脑,前提是你需要把你操作的数据库设定好,并设定好登录数据库的ID和密码。
5、此外,SQLExpress版本只能对本机提供SQL服务,要异机提供SQL服务,你需要安装服务器版的SQL,而且一般要求安装在Server版的Win上。追问

我sql数据库都弄好了,你没看到我连接成功了吗?

追答

如果你上图中 指的是在 另一台机器上 联接 异机的服务器,能得到以上的结果,那说明你的SQL服务是成功的。

请查核你的 Delphi 中的联接服务器的 字串,看是否字串中的 服务器名、ID、密码 相关的字串出现了错误。

此外,Delphi联向服务器常见的方法有两种,一种是ADO控件,一种是使用本机数据源。个人推荐前者,前者因为不依靠本机的数据源设定,来得更可靠一些。

追问

我是在装sql数据库的机子上测试的,用花生壳解析的域名。

追答

1、花生壳的域名转换很可能会出问题。好象花生壳只能向外印射不多的几个端口。你需要查证,花生壳下,你的1433端口是否能向外联接。
2、SQLExpress版本只能对本机提供SQL服务,你需要查证,你安装的是不是服务器版的SQL。
3、此外,请考虑防火墙的问题,看本机的防火墙是否开放了1433端口,如通过路由等设备,还要考虑硬件对端口的拦挡。

追问

我sql2005

追答

一、SQL有2000、2005、2008等不同年代的版本。
不同年代的版本中,每一版本都有 单机版 和服务器版。

二、从你追问khhily时给出的图像来看,你的数据库实例名为SQLExpress,一般来说,除非你自个有意改成这个名,否则,只有SQLExpress版的,才会默认实例名为SQLExpress。SQLExpress版为简化版,默认情况下,这个玩意儿无法异机联接,网上有以下简单方法可以使得它能异机联接:
关于开启Sql Server 2005 Express版本的远程连接功能:
1、登陆改为混合模式:以windows方式连接并进入数据库,右键点击你的数据服务器->属性->安全性>选中Sql server 和windows 验证方式。
2、启用TCP/IP和Named Pipes:进入Sql Server配置管理器,在网络配置->SqlExpress的协议中启用。
3、启用远程连接:sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",选择"同时使用TCP/IP和named pipes"
重启服务,一般这样配置后通过.\sqlexpress就能访问数据库了(除非防火墙问题),但如果是在另外一台电脑来访问的话,还是不行(在本机用127.0.0.1\sqlexpress也不行)。
后来找了n久资料,终于看到要开启Sql Server Browser服务!(在配置管理器->Sql Server 2005服务里面开启)。开启后就能在其他机器上来访问sql了。

三、个人建议你,先组局域网,在局域网中各机关闭防火,调试通过后,再在互联网进行调试。

本回答被网友采纳
第2个回答  2013-06-15
排查下是不是数据库连接的问题 在没有安装SQL SERVER的电脑上加个数据连接控件 保证局域网是通的 有的SQL 安装版本还需要补丁追问

什么数据库控件?

第3个回答  2013-06-15
因为没有sql的支持程序,需要安装sql才行
相似回答