Bagikan melalui


Pernyataan SQL yang Dimasukkan oleh Pengguna

Aplikasi yang melakukan analisis ad hoc juga biasanya memungkinkan pengguna untuk memasukkan pernyataan SQL secara langsung. Misalnya:

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

Pendekatan ini menyederhanakan pengodean aplikasi; aplikasi bergantung pada pengguna untuk membangun pernyataan SQL dan pada sumber data untuk memeriksa validitas pernyataan. Karena sulit untuk menulis antarmuka pengguna grafis yang secara memadai mengekspos seluk-beluk SQL, hanya meminta pengguna untuk memasukkan teks pernyataan SQL mungkin alternatif yang lebih disukai. Namun, ini mengharuskan pengguna untuk mengetahui tidak hanya SQL tetapi juga skema sumber data yang dikueri. Beberapa aplikasi menyediakan antarmuka pengguna grafis tempat pengguna dapat membuat pernyataan SQL dasar dan juga menyediakan antarmuka teks tempat pengguna dapat memodifikasinya.