почему в следующем коде апдейт не находит строчку вставленную первым инсертом.
код выполняется без ошибок
...........
{
char *insert;
if(g->cmd==CMD_PRIHOD||g->cmd==CMD_RASHOD||g->cmd==CMD_REPRICE)
insert = "INSERT INTO roz_control VALUES (:id_apparat, :command, 0, sysdate, 0, :doc_id, 0,0,0, 'FAILURE', -1 )";
else insert = "INSERT INTO roz_control VALUES (:id_apparat, :command, 0, sysdate, 0, 0, 0,0,0, 'FAILURE', -1 )";
syslog(LOG_INFO,"%s:try to execute '%s'",__func__,insert);
if( oparse(&g->cda, insert, (sb4) -1, FALSE, (ub4) VERSION_7) ) do_exit_with_err_report(g,EXIT_FAILURE);
obndrv( &g->cda, (text*)":id_apparat",-1, (ub1*)&g->id_kassa, (sword)sizeof(g->id_kassa), SQLT_INT,-1, (sb2*)0, (text*)0,-1,-1);
obndrv( &g->cda, (text*)":command", -1, (ub1*)commands[g->cmd], -1, SQLT_STR,-1, (sb2*)0, (text*)0,-1,-1);
if(g->cmd==CMD_PRIHOD||g->cmd==CMD_RASHOD||g->cmd==CMD_REPRICE)
obndrv( &g->cda, (text*)":doc_id",-1, (ub1*)g->doc_num_str, -1, SQLT_STR,-1, (sb2*)0, (text*)0,-1,-1);
if ( oexec( &g->cda ) ) do_exit_with_err_report(g,EXIT_FAILURE);
if(ocom(&g->lda)){
text msg[512];
oerhms(&g->lda, g->lda.rc, msg, (sword) sizeof msg);
syslog(LOG_ERR, "%s:%s:ORACLE ERROR:%s", __func__, (g->lda.fc > 0)?(oci_func_tab[g->lda.fc]):(text*)"UNCKNOWN", msg);
}
}
//----------------------------------------------------
{
char update[] = "update roz_control set error_ekka = 1, status = 'SUCCESS'"
" where cmd = :command and error_ekka = -1 and apparat_id = :id_apparat and
data = (select max(data) from roz_control where apparat_id = :id_apparat)";
syslog(LOG_INFO,"%s:try to execute '%s'",__func__,update);
if( oparse(&g->cda, update, (sb4) -1, FALSE, (ub4) VERSION_7) ) do_exit_with_err_report(g,EXIT_FAILURE);
obndrv( &g->cda, (text*)":id_apparat",-1, (ub1*)&g->id_kassa, (sword)sizeof(g->id_kassa), SQLT_INT,-1, (sb2*)0, (text*)0,-1,-1);
obndrv( &g->cda, (text*)":command", -1, (ub1*)commands[g->cmd], -1, SQLT_STR,-1, (sb2*)0, (text*)0,-1,-1);
if ( oexec( &g->cda ) ) do_exit_with_err_report(g,EXIT_FAILURE);
if (ocom(&g->lda)){
text msg[512];
oerhms(&g->lda, g->lda.rc, msg, (sword) sizeof msg);
syslog(LOG_ERR, "%s:%s:ORACLE ERROR:%s", __func__, (g->lda.fc > 0)?(oci_func_tab[g->lda.fc]):(text*)"UNCKNOWN", msg);
}
}
.........................
????
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от cvv

Ответ на:
комментарий
от cvv

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Wine+OCI (2002)
- Новости OCI C++ Library (2000)
- Форум ORACLE CALL INTERFACE (OCI) (2003)
- Форум Oci - проблема с компиляцией (2002)
- Форум Дока на Oracle OCI (2005)
- Форум Выдержит ли SQLite нагрузку уровня linux.org.ru? (2022)
- Форум Зацените и протестриуйте бота, которого написал ChatGPT (2024)
- Форум [java][oracle] Invalid OCI operation (2012)
- Форум oracle правильная компиляция Це(OCI) (2002)
- Форум SQL (2016)