我试图通过在经典ASP中查询2个数据库(Sybase)来生成报告。
我创建了2个连接字符串:
数据库 A的connA数据库B的connB
两个数据库都位于同一台服务器上(不知道这是否重要)
查询:
q1 = SELECT column1 INTO #temp FROM databaseA..table1 WHERE xyz="A"
q2 = SELECT columnA,columnB,...,columnZ FROM table2 a #temp b WHERE b.column1=a.columnB
其次是:
response.Write(rstsql) <br> set rstSQL = CreateObject("ADODB.Recordset")<br> rstSQL.Open q1, connA<br> rstSQL.Open q2, connB
当我尝试在浏览器中打开此页面时,出现错误消息:
Microsoft OLE DB提供程序的ODBC驱动程序错误‘80040e37’ 找不到[DataDirect] [ODBC Sybase Wire Protocol驱动程序] [SQL Server] temp。指定owner.objectname或使用sp_help检查对象是否存在(sp_help可能会产生大量输出)。
Microsoft OLE DB提供程序的ODBC驱动程序错误‘80040e37’
找不到[DataDirect] [ODBC Sybase Wire Protocol驱动程序] [SQL Server]
任何人都可以帮助我了解问题所在并帮助我解决该问题吗?
谢谢。
对于这两个查询,您似乎都想插入#temp。#temp位于其中一个数据库上(出于参数考虑,databaseA)。因此,当您尝试从databaseB插入#temp时,它报告它不存在。
尝试在两个语句中将其从 Into #temp From_更改为 _Into databaseA.dbo。#temp From。
另外,请确保连接字符串对另一个数据库具有权限,否则将无法使用。
更新:与临时表超出范围有关- 如果您有一个对两个数据库都具有权限的连接字符串,则可以将其用于两个查询(同时保持连接处于活动状态)。在另一个数据库中查询表时,请确保在引用表时使用[DBName]。[Owner]。[TableName]格式。