Aracılığıyla paylaş


Kullanıcı Tarafından Girilen SQL Deyimleri

Geçici analiz gerçekleştiren uygulamalar genellikle kullanıcının SQL deyimlerini doğrudan girmesini de sağlar. Örneğin:

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++;  
   }  
}  

Bu yaklaşım uygulama kodlamayı basitleştirir; uygulama, SQL deyimini oluşturmak için kullanıcıya ve deyimin geçerliliğini denetlemek için veri kaynağına dayanır. SQL'in karmaşıklıklarını yeterince ortaya çıkaran bir grafik kullanıcı arabirimi yazmak zor olduğundan, yalnızca kullanıcıdan SQL deyimi metnini girmesini istemek tercih edilebilir bir alternatif olabilir. Ancak bu, kullanıcının yalnızca SQL'i değil sorgulanan veri kaynağının şemasını da bilmesini gerektirir. Bazı uygulamalar, kullanıcının temel bir SQL deyimi oluşturabileceği ve kullanıcının değiştirebileceği bir metin arabirimi sağlayabilecekleri bir grafik kullanıcı arabirimi sağlar.