Share via


OdbcCommand.CommandText 속성

정의

데이터 소스에 대해 실행할 SQL 문이나 저장 프로시저를 가져오거나 설정합니다.

public:
 virtual property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public:
 property System::String ^ CommandText { System::String ^ get(); void set(System::String ^ value); };
public override string CommandText { get; set; }
public string CommandText { get; set; }
member this.CommandText : string with get, set
Public Overrides Property CommandText As String
Public Property CommandText As String

속성 값

실행할 SQL 문 또는 저장 프로시저입니다. 기본값은 빈 문자열("")입니다.

구현

설명

속성이 로 CommandType 설정 StoredProcedure되면 표준 ODBC 저장 프로시저 이 CommandText 스케이프 시퀀스를 사용하여 속성을 설정해야 합니다. 를 CommandText 저장 프로시저의 이름으로 설정해도 다른 .NET Framework 데이터 공급자와 마찬가지로 작동하지 않습니다.

외부 조인 및 스칼라 함수 호출과 같은 많은 언어 기능은 일반적으로 데이터 원본에서 구현됩니다. 이러한 기능에 대한 구문도 일반적으로 데이터 원본에 따라 다릅니다. 따라서 ODBC는 다음 언어 기능에 대한 표준 구문을 포함하는 이스케이프 시퀀스를 정의합니다.

  • 날짜, 시간, 타임스탬프 및 datetime 간격 리터럴

  • 숫자, 문자열 및 데이터 형식 변환 함수와 같은 스칼라 함수

  • LIKE 조건자 이스케이프 문자

  • 외부 조인

  • 프로시저 호출

ODBC에서 사용하는 이스케이프 시퀀스는 다음과 같습니다.

{extension}  

이 이스케이프 시퀀스는 ODBC 드라이버에서 인식하고 구문 분석합니다. 그런 다음 모든 이스케이프 시퀀스를 데이터 원본별 문법으로 대체합니다.

프로시저는 데이터 원본에 저장된 실행 개체입니다. 일반적으로 미리 컴파일된 하나 이상의 SQL 문입니다. 프로시저를 호출하기 위한 이스케이프 시퀀스는

{[?=]call procedure-name[([parameter][,[parameter]]...)]}  

여기서 는 procedure-name 프로시저의 이름을 지정하고 parameter 프로시저 매개 변수를 지정합니다.

이 명령은 Execute 메서드(예 ExecuteReader : 또는 ExecuteNonQuery) 중 하나를 호출할 때 이 저장 프로시저를 실행합니다.

현재 연결이 Connection실행 또는 페치 작업을 수행하는 경우 , CommandTypeCommandText 속성을 설정할 수 없습니다.

ODBC.NET 공급자는 가 로 설정된 경우 CommandType 에서 호출하는 저장 프로시저 또는 SQL 문에 매개 변수를 전달하는 명명된 매개 변수를 OdbcCommandText지원하지 않습니다. 이 경우 물음표(?) 자리 표시자를 사용해야 합니다. 예를 들면 다음과 같습니다.

SELECT * FROM Customers WHERE CustomerID = ?  

따라서 개체가 에 추가 OdbcParameterCollection 되는 OdbcParameter 순서는 매개 변수에 대한 물음표 자리 표시자의 위치에 직접 해당해야 합니다.

매개 변수에 null 값이 포함된 경우 ODBC용 .NET Framework 데이터 공급자는 여전히 해당 매개 변수를 바인딩하지만 null 값 대신 SQL_DEFAULT_PARAM 사용하여 정의된 경우 기본 매개 변수를 사용합니다. 예를 들어 는 입니다 OdbcParameterCollection.

{1, null, 2}  

에 전달 된 CommandText 속성:

{call sp(?, ?, ?)}  

는 ODBC용 .NET Framework 데이터 공급자가 첫 번째 매개 변수를 값 1에 바인딩하고, 세 번째 매개 변수를 값 2에 바인딩하고, 두 번째 매개 변수를 SQL_DEFAULT_PARAM. 그러나 이 동작은 드라이버에 따라 다릅니다. 드라이버가 이 기능을 지원하지 않는 경우 매개 변수에 대한 값을 전달하지 마세요. 예를 들어 를 사용합니다.OdbcParameterCollection

{1, 2}  

속성을 CommandText 다음으로 설정합니다.

{call sp(?, null, ?)}  

참고

매개 변수를 생략하면 다른 매개 변수에서 매개 변수를 구분하는 쉼표가 계속 나타나야 합니다. 입력 또는 입/출력 매개 변수를 생략할 경우 프로시저는 매개 변수의 기본값을 사용합니다. 입력 또는 입력/출력 매개 변수의 기본값을 지정하는 또 다른 방법은 매개 변수에 바인딩된 길이/표시기 버퍼의 값을 SQL_DEFAULT_PARAM 설정하는 것입니다.

적용 대상

추가 정보