如果是Windows身份验证,则报告无法连接到SQL Server

时间:2010-10-16 11:04:43

标签: sql sql-server delphi crystal-reports

我想在连接到SQL数据库的Delphi 7程序中预览报表。数据库可以使用SQL或Windows身份验证。

如果我的程序执行SQL身份验证:

MyReportComponent.Connect.Server:=myServer;
MyReportComponent.Connect.UserId:=myUserId;
MyReportComponent.Connect.Password:=myPassword;
MyReportComponent.Connect.Database:=myDatabase;
MyReportComponent.Execute;

一切正常。

但是如果服务器使用的是Windows身份验证,则Connect中没有任何属性可以指示它,如果我将UserId和密码分配为空白,则报告不会连接到数据库!

任何线索?

提前致谢!

2 个答案:

答案 0 :(得分:1)

这取决于您使用的实际数据库。将添加一些魔术文本添加到ConnectionString属性。对于MS-SQL Server,您可以尝试:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;

如果您正在使用OLE访问,就像我们在这里一样。 Delphi连接向导中包含了许多内置的信息,因此值得一试。特别是在后来的Delphi版本中,我不确定Delphi7到底有多远(现在没有我的副本,对不起)。

答案 1 :(得分:0)

在Windows集成身份验证中,用户在登录Windows时指定其(她)的用户名和密码。 Windows使用各种机制进行身份验证,而不是用户自己或应用程序,具体取决于网络的配置和状态,如Kerberos,NTLM2等。