[10g1][OCI][C++][IIS] Blocage sur un update
Bonjour à tous,
j'ai un bout de code faisant appel à OCI et qui fonctionne bien lorsqu'on lui passe un "select", mais qui bloque quand on lui passe un update. Dans ce dernier cas, la fonction OCIStmtExecute coince, donc l'appli aussi.
Extrait du code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
// select query...
CString sz = "select count(*) from road.test";
st = ::OCIStmtPrepare( m_pStmt, m_pErr,
(text*) sz.GetBuffer( 0 ), sz.GetLength(),
OCI_NTV_SYNTAX, OCI_DEFAULT );
if ( st != OCI_SUCCESS && st != OCI_SUCCESS_WITH_INFO ) {
return false;
}
// ---> this one is ok
st = ::OCIStmtExecute( m_pService, m_pStmt, m_pErr, 0, 0, NULL, NULL, OCI_DEFAULT );
if ( st != OCI_SUCCESS && st != OCI_SUCCESS_WITH_INFO ) {
return false;
}
// update query
sz = "update road.test set col1 = 3";
st = ::OCIStmtPrepare( m_pStmt, m_pErr,
(text*) sz.GetBuffer( 0 ), sz.GetLength(),
OCI_NTV_SYNTAX, OCI_DEFAULT );
if ( st != OCI_SUCCESS && st != OCI_SUCCESS_WITH_INFO ) {
return false;
}
// ---> this one never returns....
st = ::OCIStmtExecute( m_pService, m_pStmt, m_pErr, 1, 0, NULL, NULL, OCI_DEFAULT );
if ( st != OCI_SUCCESS && st != OCI_SUCCESS_WITH_INFO ) {
return false;
} |
En fait, je me demande s'il n'y a pas un problème de configuration. Si je me connecte avec les mêmes user/pwd en passant par la console d'administration, le update fonctionne. Si j'envoie ce même update via un autre code exploitant OCI (la petite appli Osql freeware de Ben Bryant), il bloque au même endroit que moi.
Qu'ai-je pu oublier au niveau droits (ou paramétrage de l'environnement lors de l'OCIEnvCreate, ou ailleurs) qui me bloque ainsi ??????