2009-06-26 7 views
5

Sto affrontando un errore SQLite se io non sto usando qualsiasi AutoCommit esplicito vero o falso. chiunque può fornire qualsiasi input su questo errore. Quali sono le situazioni in cui otterrai questo errore.errore SQLite: non può commettere transazione - istruzioni SQL in corso utilizzando il codice Java

Grazie in anticipo. Saluti, Manasi Salva

+0

Potete per favore pubblicare un frammento di codice? –

+0

E quale versione di SQLite stai eseguendo? –

+0

Sto usando SQLite versione 3 –

risposta

5

Ho affrontato ripetutamente un problema simile (nel mio caso si trattava di un rollback che non era possibile) quando ero all'interno di un ciclo che si sovrapponeva alle voci della tabella. Finché il cursore sta elaborando le voci, un'istruzione SQL è "in corso". Non so esattamente, se questo proibisce anche i commit, ma potrebbe esserlo.

Quando si tenta di elaborare le voci della tabella e inserire le voci nella stessa o in una tabella diversa, si potrebbe voler cercare di raccogliere i dati in memoria e dopo il ciclo fare gli inserti o aggiornamenti.

informazioni un'indicazione supplementare: "Autocommit" normalmente il default è "True" in SQLite (che ovviamente potrebbe anche dipendere dal livello di accesso si utilizza - sto usando Python e APSW, quindi non si può dire di più su questo in Java). Ciò significa che ogni inserto è automaticamente accettato.

==> questa potrebbe essere un'altra soluzione. Invece di archiviare i dati in memoria, potresti provare ad aprire esplicitamente una transazione e ad eseguirne il commit dopo il ciclo: in questo modo, il problema dovrebbe andare anche via.

Problemi correlati