문제

내가 노력하고 보고서를 생성하는 쿼리하여 데이터베이스 2(Sybase)에서는 클래식 ASP.

내가 만든 2 개의 연결 문자열:

connA 에 대한 databaseA
connB 에 대한 databaseB

모두 데이터베이스가 존재하는 같은 서버에(알지 못하는 경우 이 문제)

쿼리:

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 Provider for ODBC 드라이버는 오류'80040e37'

[DataDirect][ODBC Sybase 철사 프로토콜 드라이버][SQL 서버]#temp 찾을 수 없습니다.지정의 소유자입니다.체 이름 또는 사용 sp_help 여부를 확인하는 개체를 존재하(sp_help 을 생산할 수 있습을 많이 출력).

수 있는 사람이 도와주세요 문제가 무엇인지 이해하고 그것을 해결하는 데 도움?

감사합니다.

도움이 되었습니까?

해결책

모두 쿼리,그것은 다음과 같하려에 삽입#temp.#temp 에 위치한 하나의 데이터베이스(인수 술,databaseA).그래서려고 할 때에 삽입#temp 에서 databaseB,그것을 보고는 그것은 존재하지 않습니다.

시에서 변경 #temp 하기 databaseA.dbo.#temp 양의 문이 있습니다.

또한,연결 문자열에 대한 권한이 있는 다른 DB,그렇지 않으면 이 작동하지 않습니다.

업데이트:과 관련하여 임시 테이블의 범위가 있는 경우 하나의 연결 문자열을 모두에 대한 권한 데이터베이스를 사용할 수 있습이 모두에 대한 쿼리(을 유지하면서 살아 연결).쿼리하는 동안의 테이블에 다른 DB 를 사용해야 합[DBName].[소유자].[테이블]서식을 참조할 경우 테이블이다.

다른 팁

귀하의 임시 테이블의 범위를,그것은'살아있는 동안 첫 번째 연결과에서 사용할 수 없 제 2 회 연결 이동 그것의 모든에서 한 블록의 코드를 실행 그것은 하나의 내부 연결

프로그램의 범위 밖에서 q2.

모든 작업을 수행할 수 있습니다 쿼리:


SELECT a.columnA, a.columnB,..., a.columnZ
FROM table2 a
INNER JOIN (SELECT databaseA..table1.column1 
            FROM databaseA..table1
            WHERE databaseA..table1.xyz = 'A') b
  ON a.columnB = b.column1
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top