FIX: 오류 메시지를 SQL Server 2000 드라이버 JDBC 및 SQL Server 2005 드라이버 JDBC에 대해 동일한 응용 프로그램에서 로드한, SQL Server 2005 데이터베이스에 연결하려고 다음 쿼리를 실행할 때 나타날 수 있습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 915834 - 이 문서가 적용되는 제품 보기.
버그 #: 2059 (PSSWebData)
모두 확대 | 모두 축소

이 페이지에서

현상

영문자와 숫자가 조합된 PIN 코드가 설정된 Bluetooth 장치가 있다면. 응용 프로그램에서 JDBC에 대한 Microsoft SQL Server 2000 드라이버를 로드합니다. 그런 다음, 동일한 응용 프로그램에서 Microsoft SQL Server 2005 JDBC 드라이버 로드합니다. SQL Server 2005 JDBC 드라이버 URL을 사용하여 SQL Server 2005 데이터베이스에 연결하려고 하면 이 시나리오에서는 Microsoft SQL Server 2000 드라이버에 대한 JDBC를 사용하여 연결이 설정됩니다. 나중에 쿼리를 실행할 경우 다음과 같은 오류 메시지가 나타날 수 있습니다.
[Microsoft][JDBC SQLServer 2000 드라이버][SQLServer](TDS) 원격 프로시저 호출 (RPC) 프로토콜 스트림이 잘못되었습니다 들어오는 테이블 형식 데이터 스트림. 매개 변수를 1 (""): 데이터 형식 0x38 알 수 없습니다.
SQL Server 2000 데이터베이스에 대한 연결을 설정할 경우 모든 오류 메시지가 나타날 수 있으며 잘못된 드라이버가 사용되고 있다는 사실을 발견할 수 있습니다. 응용 프로그램에서 Microsoft SQL Server 2005 JDBC 드라이버를 로드하기 전에 JDBC SQL Server 2000 드라이버를 로드할 때 이 문제가 발생합니다.

원인

SQL Server 2000 JDBC 드라이버를 결함이 있는 이름 확인을 발생하기 때문에 이 문제가 발생합니다. SQL Server 2000 JDBC 드라이버를 SQL Server 2005 JDBC 드라이버 연결 URL을 입력할 수 있습니다. 다음 문자열을 사용하여 연결 문자열을 URL 시작 SQL Server 2005 JDBC 드라이버:
jdbc:sqlserver://ConnectionString
JDBC SQL Server 2000 드라이버 다음 문자열로 시작하는 연결 문자열을 URL만 사용해야 합니다.
jdbc:microsoft:sqlserver://ConnectionString
그러나 JDBC SQL Server 2000 드라이버 다음 형식이 연결을 받아들이는:
jdbc:sqlserver://ConnectionString
JDBC SQL Server 2000 드라이버 SQL Server 2005 데이터베이스에 연결하기 위해 설계되었기 때문에 예외가 발생합니다.

해결 방법

지원되는 핫픽스를 이제 Microsoft에서 사용할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생하는 시스템에만 적용해야. 이 핫픽스는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각한 경우가 아니면 JDBC 서비스 팩이 이 핫픽스가 포함된 다음 SQL Server 2000 드라이버 기다리는 것이 좋습니다.

이 문제를 즉시 해결하려면 핫픽스를 구하려면 Microsoft 기술 지원 서비스에 문의하십시오. Microsoft 고객기술지원부 전화 번호 및 지원 비용에 대한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/contactus/?ws=support
참고 Microsoft 기술 지원 전문가가 특정 업데이트로 문제를 해결할 수 있다고 판단하는 경우, 일반적으로 지원 호출에 발생하는 비용이 취소될 수 있습니다. 추가 지원 질문과 문제에는 특정 업데이트가 필요하지 않은 지원 비용이 적용됩니다.

파일 정보

이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하십시오.
표 축소표 확대
파일 이름파일 크기날짜시간
Msbase.jar289,7132006-03-2월23:02
Mssqlserver.jar67,4832006-03-2월23:02
Msutil.jar56,5372006-03-2월23:02

해결 과정

이 문제를 해결하려면 다음과 같이 하십시오.
  1. SQL Server 2005 드라이버에 대한 JDBC SQL Server 2000 드라이버를 로드하기 전에 JDBC에 대한 로드하십시오. 이렇게 하려면 다음 코드 예제에서는. 에서와 DriverManager 클래스를 사용하여
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 version
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 version
    
  2. SQL Server 2005 드라이버 JDBC 연결 URL에 대한 연결을 설정할 수 있습니다. 이렇게 하려면 다음 코드 예제와 유사한 코드를 사용합니다.
    Connection con = DriverManager.getConnection("jdbc:sqlserver://<ServerName>;user=<UserName>;password=<Password>");
데이터 원본과 연결하는 방법과 연결 URL을 사용하는 방법에 대한 자세한 내용은 다음 MSDN) Microsoft 개발자 네트워크 (웹 사이트를 방문하십시오.
연결 URL의 작성
http://msdn2.microsoft.com/en-us/library/ms378428.aspx

연결 속성 설정
http://msdn2.microsoft.com/en-us/library/ms378988.aspx

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 제품에서 이 문제를 확인했습니다.

추가 정보

문제를 재현하는 방법

예제 코드 컴파일 및 다음 실행에 다음 Java.
import java.sql.*;
public class TestDriver {
  public static void main(String[] args) throws Exception
       	{

       	Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
       	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

	Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://<Server>;DatabaseName=<DatabaseName>", 
"<UserId>","<Passwd>");
	DatabaseMetaData dbmd = conn.getMetaData();
	System.out.println("Driver = " + dbmd.getDriverName() + "_" + dbmd.getDriverVersion());

	conn = DriverManager.getConnection("jdbc:sqlserver://<Server>;DatabaseName=<DatabaseName>", 
"<UserId>","<Passwd>");
	dbmd = conn.getMetaData();
	System.out.println("Driver = " + dbmd.getDriverName() + "_" + dbmd.getDriverVersion());
	displayVersions(conn);
	}

	public static void displayVersions(Connection conn)
       	{
               Statement s3 = null;
               ResultSet rr = null;

               try
               {
                       s3 = conn.createStatement();
                       System.out.println("\nStart trying to retreive data\n");
                       rr = s3.executeQuery("select @@version");

                       boolean OK = rr.next();
                       if (OK)
                               System.out.println("The current version of Microsoft SQL Server is: " + rr.getString(1));
                       else
                               System.out.println("result set NO ROWS!");
               }
               catch (Exception ex)
               {
                       System.out.println("Caught error in displayAnyData:\n\t" + ex.getMessage());
               }

               try
               {
                       if (rr != null) rr.close();
                       if (s3 != null) s3.close();
                       System.out.println("End trying to retreive data\n");
               }
               catch (Exception ee)
               {
                       System.out.println("Error closing rr or s3 in displayData: " + ee.getMessage());
               }

	}

	}
참고 이 코드 예제를 사용하려면 다음 자리 표시자를 대체합니다.
  • <Server> SQL 인스턴스 이름을 가진 서버.
  • <DatabaseName> 있는 데이터베이스의 이름입니다.
  • <UserId> 사용자 ID를 가진
  • <PassWd> 암호로.

참조

JDBC에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
313100Microsoft JDBC 시작하는 방법
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft 는 이러한 제품의 성능 및 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

속성

기술 자료: 915834 - 마지막 검토: 2006년 7월 19일 수요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Driver for JDBC
키워드:?
kbmt kbhotfixserver kbqfe kbfix KB915834 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com