Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplicações que realizam análises ad hoc também permitem frequentemente ao utilizador inserir instruções SQL diretamente. Por exemplo:
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++;
}
}
Esta abordagem simplifica a codificação de aplicações; a aplicação depende do utilizador para construir a instrução SQL e da fonte de dados para verificar a validade da declaração. Como é difícil escrever uma interface gráfica que exponha adequadamente as complexidades do SQL, simplesmente pedir ao utilizador que insira o texto da instrução SQL pode ser uma alternativa preferível. No entanto, isto requer que o utilizador conheça não só SQL, mas também o esquema da fonte de dados que está a ser consultada. Algumas aplicações fornecem uma interface gráfica de utilizador através da qual o utilizador pode criar uma instrução SQL básica e também uma interface de texto com a qual o utilizador pode modificá-la.