사용자가 입력한 SQL 문

또한 임시 분석을 수행하는 애플리케이션에서는 일반적으로 사용자가 SQL 문을 직접 입력할 수 있습니다. 예시:

SQLCHAR *     Statement, SqlState[6], Msg[SQL_MAX_MESSAGE_LENGTH];  
SQLSMALLINT   i, MsgLen;  
SQLINTEGER    NativeError;  
SQLRETURN     rc1, rc2;  
  
// Prompt user for SQL statement.  
GetSQLStatement(Statement);  
  
// Execute the statement directly. Because it will be executed only once,  
// do not prepare it.  
rc1 = SQLExecDirect(hstmt, Statement, SQL_NTS);  
  
// Process any errors or returned information.  
if ((rc1 == SQL_ERROR) || rc1 == SQL_SUCCESS_WITH_INFO) {  
   i = 1;  
   while ((rc2 = SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, i, SqlState, &NativeError,  
         Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA) {  
      DisplayError(SqlState, NativeError, Msg, MsgLen);  
      i++;  
   }  
}  

이 방법은 애플리케이션 코딩을 간소화합니다. 애플리케이션은 사용자가 SQL 문을 빌드하고 데이터 원본에 의존하여 문의 유효성을 검사. SQL의 복잡성을 적절하게 노출하는 그래픽 사용자 인터페이스를 작성하기 어렵기 때문에 사용자에게 SQL 문 텍스트를 입력하도록 요청하는 것이 바람직할 수 있습니다. 그러나 이렇게 하려면 사용자가 SQL뿐만 아니라 쿼리 중인 데이터 원본의 스키마도 알아야 합니다. 일부 애플리케이션은 사용자가 기본 SQL 문을 만들고 사용자가 수정할 수 있는 텍스트 인터페이스를 제공할 수 있는 그래픽 사용자 인터페이스를 제공합니다.