Sql VB 6应用程序抛出错误服务器主体(用户名)无法在当前安全上下文下访问数据库产品

Sql VB 6应用程序抛出错误服务器主体(用户名)无法在当前安全上下文下访问数据库产品,sql,vb6,Sql,Vb6,我正在使用一个用VB6编写的遗留应用程序。代码中有一个嵌入式sql查询。我正在尝试在另一个数据库上进行左连接。使用以下select语句: SQL = "select h.case_ref, t.t5_desc, h.narisno, h.valuation_ref, h.claimant, h.t5," & _ " h.claim_amount, h.claim_date , h.dateofentry, h.case_completed, l.project_short_name AS

我正在使用一个用VB6编写的遗留应用程序。代码中有一个嵌入式sql查询。我正在尝试在另一个数据库上进行左连接。使用以下select语句:

SQL = "select h.case_ref, t.t5_desc, h.narisno, h.valuation_ref, h.claimant, h.t5," & _
" h.claim_amount, h.claim_date , h.dateofentry, h.case_completed, l.project_short_name AS narisno_desc, h.case_type "
If blnFromCaseRefSelection = True Then
    SQL = SQL & " from case_header h left join lut_t5 t on h.t5 = t.t5 left join" & _
    " [production].[dbo].[xxx_01_project_attributes] l on  h.nno = l.pin where h.case_ref = '" & cboCaseRef.Text & "'"
Else
    SQL = SQL & " from lut_fileref f, case_header h left join lut_t5 t on h.t5 = t.t5" & _
    " left join lut_nno n on h.nno = n.nno Where h.case_ref = f.case_ref" & _
    " and f.ha_fileref = '" & xxoHAFileRef.Text & "'"
End If
错误:服务器主体(用户名)无法访问数据库 当前安全环境下的生产


任何关于ui如何解决这个问题的想法,我对VB 6的经验是基本的

这有点难理解,你能在突出显示代码后使用工具栏中的{}编辑问题并添加正确的返回和选项卡吗?我怀疑这与SQL有什么关系。检查您的ODBC连接和用于访问服务器的用户ID(我假设它是SQL Server),但您没有说。您需要检查用户ID的权限,以确保其超过Public@dbmitch谢谢你的回复。当我在sql中运行相同的查询时,它会从我试图在上面的查询中对([production].[dbo].[xxx\U 01\U project\U attributes])执行左联接的表中返回正确的结果,但当我将此代码嵌入VB 6代码时,会编译它并将代码部署到环境中,这时我会收到错误。它的工作方式是,我将在搜索框中提供一个数字,它将从数据库中填充一个vb表单。我读到我的问题可能是ADODB问题,但我不是很确定!这表示两台服务器/数据库之间存在权限错误。从应用程序运行时使用的用户上下文不够/正确,而“在sql中”运行查询时使用的用户上下文(您是指management studio?)不够/正确。正如@dbmitch所描述的,这不是vb6的问题。它直接在SQL server下正确运行并不一定意味着它也会在VB下正确运行。正如Dbitch所说,问题几乎肯定在于您的连接。如果您使用的是ODBC(和DAO),请按照他的建议去做。如果您正在使用OLE DB(和ADO),正如您所暗示的,请检查
连接
对象的
连接字符串
属性。它可能没有正确的登录凭据。