【问题标题】:Connecting to SQL Server 2005 via web service通过 Web 服务连接到 SQL Server 2005
【发布时间】:2010-04-16 19:48:54
【问题描述】:

Delphi 2010、dbExpress 和 SQL Server 2005 数据库

我正在尝试使用 Delphi 2010 和 DBExpress 连接到 SQL Server 2005 DB。

如果我创建一个标准的 delphi 应用程序并对我的连接进行硬编码(它可以工作!):

procedure TForm1.Button1Click(Sender: TObject);
var
 Conn: TSQLConnection;
begin
 Conn:= TSQLConnection.Create(nil);
 Conn.ConnectionName:= 'VPUCDS_VPN_SE01';
 Conn.LoadParamsOnConnect := True;
 Conn.LoginPrompt:=True;
 try
   Conn.Connected:= True;
   if Conn.Connected then
   ShowMessage('Connected!')
   else
   ShowMessage('NOT Connected!')
 finally
  Conn.Free;
 end;
end;

所有 ini 文件和 DLL 与我的可执行文件位于同一文件夹中

是的,我在 uses 子句中有 DBXMsSQL 和 MidasLib

再一次,如果它不是网络服务,它就可以工作!

但是,如果我随后将代码移至 Web 服务 CGI 模块:

function TTest.ConnectToDB: Boolean;stdcall;
var
 Conn: TSQLConnection;
begin
 Conn:= TSQLConnection.Create(nil);
 Conn.ConnectionName:= 'VPUCDS_VPN_SE01';  
 Conn.LoadParamsOnConnect := True;
 Conn.LoginPrompt:=True;
 try
   Conn.Connected:= True;
   result:=  Conn.Connected;
 finally
  Conn.Free;
 end;
end;

谢谢

【问题讨论】:

  • 您是使用 Windows 集成身份验证还是使用基于 SQL 的身份验证进行连接?

标签: sql-server web-services delphi delphi-2010 dbexpress


【解决方案1】:

线

Conn.LoginPrompt:=True;

是出现问题的第一个迹象。 Web 服务无法处理登录提示。

其次,VPUCDS_VPN_SE01在哪里定义?如果它是用户特定的 ODBC 连接,则应使其成为系统范围的连接。

在连接定义中提供登录详细信息,并将 LoginPrompt 设置为 false。此外,提供一种将连接失败原因返回给客户端的方法(例如,通过传递异常消息)。

【讨论】:

【解决方案2】:

我最近遇到了类似的情况,在申请表中打印 QuickReports 可以正常工作,但在切换到服务时无法正常工作。这是在 Windows Server 2008 上。原来需要在登录选项卡下使用“NetworkService”作为用户帐户安装服务(在您的情况下为 WebServer)。从 Windows 帮助:

要指定服务使用网络服务帐户,请单击此帐户,然后键入 NT AUTHORITY\NetworkService

为此,请转到开始->运行,然后输入 services.msc

导航到 IIS 服务并右键单击并选择属性,然后转到登录。

确保此帐户已选中,并且显示网络服务

【讨论】:

  • 对不起,来自 Windows Server 2008 还是来自 IIS7?
  • 您能否更具体地说明如何执行此操作。抱歉,我显然是新手。谢谢!
  • 对不起,在我上面的问题中,我的意思是用它不起作用来结束这个问题!我收到一条错误消息“无效参数:VPUCDS_VPN_SE01”。为什么它可以从标准应用程序可执行文件而不是 Web 服务 CGI 可执行文件运行??????谢谢
  • 不确定 - 您在我向答案附加更多内容的同时添加了您的评论(提供使用网络服务登录的说明。
  • 嗯,我按照您的指示到达了服务列表,但似乎找不到与 IIS7 相关的任何服务。你知道它的确切名称吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
相关资源
最近更新 更多