我想在连接到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和密码分配为空白,则报告不会连接到数据库!
任何线索?
提前致谢!
答案 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等。