2009-12-19 112 views
1

我在SQL Server方面相对缺乏经验,但我试图在其他人使用它编写的Delphi应用程序中解决某些(与SQL Server相关的)逻辑和UI问题。目前试图让开发环境正常运作。疑难解答SQL Server连接问题

这里的环境:

开发机:虚拟机(VMWare的)运行Windows XP,使用桥接网络。可以连接到服务器机器上的文件夹/文件。我在这台机器上安装了旧版本的SQL Server 2005 Express。我可以使用SQL Server Management Studio Express,也可以通过我的Delphi组件(ADO,可以将表格数据读取/写入网格等)连接到它。

“服务器”(又名S1):其实只是一个Windows XP工作站。我把SQL Server 2008安装在它上面。自安装以来,我使用配置管理器为SQLEXPRESS - >名称管道和TCP/IP启用了协议,并重新启动了SQL Server服务。 SQL Server被设置为使用Windows NT授权。这是我需要从Dev机器连接到的机器和SQL Server实例。

我可以使用Management Studio连接到同一台机器上的S1 SQL Server实例,但我无法从Dev框连接到它,使用2005管理工作室(我甚至不知道应该如何可能有不同的版本)或Delphi组件字符串生成器(使用OLDEDB Provider for SQL Server的TADOConnection)。当我尝试后者时,S1 SQL Server实例不会显示在下拉列表中,如果我使用Windows NT Integrated Security或指定的用户名和密码手动输入S1 \ SQLEXPRESS,则会出现以下错误:

--------------------------- 
Microsoft Data Link Error 
--------------------------- 
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. 
--------------------------- 
OK 
--------------------------- 

这是一个点对点网络;没有域控制器等。两台机器上的用户名和密码是相同的。

我该如何解决这个问题?

============================================== ==
使用Andomar的指针和我在下面评论的链接(这解释了表面区域配置工具在SQL Server 2008中消失了),我已经在S1机器的SQL Server Management Studio设置中看到了这一点,并将其设置为如下,但仍然没有非本地连接能力。我错过了什么?

SAC settings http://img192.imageshack.us/img192/8784/sacsettings.jpg

SAC Settings close up http://img38.imageshack.us/img38/457/sacsettings2.jpg

回答

2

您需要确保服务器本身正在侦听远程连接。这可以使用SQL Server表面配置区域工具完成。我只有2005年安装,但从你张贴的屏幕截图你正在错误的领域工作。您需要为数据库引擎启用远程连接。您发布的媒体资源与该设置无关。您将可以选择仅将其添加到TCP/IP或TCP/IP和命名管道。

此外,您需要确保SQL Browser service正在运行并且必要的端口已打开。默认情况下,SQL服务器将出现在随机端口上。 SQL Server Browser服务在固定端口(1434)上启动,并将信息返回给客户端,以了解您正在查找的服务器在哪个端口上运行。

这是必要的,因为您可以在一台机器上运行多个SQL Server实例。

您可以设置SQL Server以侦听特定的端口,然后将端口号包含在连接字符串中,绕过SQL Server Browser,但这需要更多的工作。

+0

对于其他人有这个问题,这个链接也证明有帮助: http:///www.symantec.com/connect/articles/install-and-configure-sql-server-2008-express – Jamo 2009-12-19 23:15:16

+0

这也是:http://www.datamasker.com/SSE2005_NetworkCfg.htm (重新启动!) – Jamo 2009-12-20 00:58:33

1

默认情况下,SQL Server Express的只监听本地主机上。

您可以使用SQL Server表面配置区域工具更改此设置。在启动屏幕上,选择“表面区域配置...”。在SQLEXPRESS实例下,打开“远程连接”。确保选中“本地和远程连接”。

+0

谢谢。这至少让我朝着一个方向前进。看起来SAC在2008年不可用。我现在在这里挖掘,尝试找到正确的设置进行更改,并执行步骤/顺序。目前还没有成功,但仍在挖掘。 http://decipherinfosys.wordpress.com/2009/01/29/no-surface-area-configuration-tool-in-sql-server-2008/ – Jamo 2009-12-19 21:35:36

+0

它应该与SQLExpress一起安装。即使SQLExpress本身没有监听远程连接,它也可以远程工作,所以如果你有它在另一台服务器上运行,你可以将它指向你的SQLExpress服务器 – Andomar 2009-12-19 22:03:12

+0

看来,他们在2008版本中将它作为单独的工具删除。有关最新更新,请参阅上文。 再次感谢您的帮助! – Jamo 2009-12-19 22:28:10