почему в следующем коде апдейт не находит строчку вставленную первым инсертом. 
код выполняется без ошибок
...........
{                                                                                                                      
    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)