* * * *

Privacy Policy

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Luglio 07, 2020, 11:21:10 am

Inserisci il nome utente, la password e la durata della sessione.

21 Visitatori, 0 Utenti

Autore Topic: errore zeoslib sqlite (RISOLTO)  (Letto 3136 volte)

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
errore zeoslib sqlite (RISOLTO)
« il: Settembre 19, 2017, 04:21:49 pm »

Buongiorno a tutti, qualcuno sa dirmi cosa significa questo messaggio:


Il progetto Gescomp ha sollevato una eccezione di classe 'External: SIGSEGV'.
All'indirizzo 43207F
sto provando ad utilizzare Lazarus 1.6.4x64 e Zeoflib 7.1.4, il progetto ha 3 datamodule con molte Ztable collegate a vari database, es. /listini/1 ,  /listini/12 ecc. - e es. /progetti/1 /progetti/2 + un datamodule di sistema con Zconnection collegato al database nella cartella /Bin.
quindi da programma scelgo, quando occorre, quale progetto e quale listino attivare. sul listino nessun problema, cambio database senza alcun errore mentre sul progetto questa istruzione: DataProge.ZConproge.Connected:=False; crea un'eccezione di access violation, le istruzioni sono identiche su tutti i moduli, cosi come quelle per l'apertura e la chiusura dei database ma l'errore lo da solo uno:progetti. stò impazzendo.Grazie in anticipo dell'aiuto.
« Ultima modifica: Ottobre 01, 2017, 01:11:46 am da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite
« Risposta #1 il: Settembre 19, 2017, 07:11:14 pm »
l'errore che mi da adesso è questo:

Operation cannot be performed on an inactive dataset.


Press OK to ignore and risk data corruption.
Press Cancel to kill the program.
se premo ok tutto funziona correttamente
se premo annulla mi da questo errore:

Error : EAccessViolation
Access violation
e il programma si pianta

avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2118
  • Karma: +6/-0
Re:errore zeoslib sqlite
« Risposta #2 il: Settembre 20, 2017, 03:58:49 pm »
Ciao Antonio.
Chiudi anche tutti i dataset o ne lasci qualcuno aperto?
Non è che stai provando a scorrere il cursore di un dataset mai aperto?

In debug quando si incasta tutto?

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite
« Risposta #3 il: Settembre 21, 2017, 03:57:18 am »
Ciao Stilgar,
per tutti e tre i dataset le istruzioni solo simili:

procedure TGescompF.SpeedButton36Click(Sender: TObject);
var
mperco : string;
F : Textfile;
Codice, Path, nome, modi,maschL, maschG, C : String;
begin
    try
     {$IFDEF LINUX}
        mperco:= Application.Location+'Progetti/'+DataSistema.ProgettiCod.Text+'/progetto.sdb';
     {$ENDIF$}
     {$IFDEF WINDOWS}
        mperco:= Application.Location+'Progetti\'+DataSistema.ProgettiCod.Text+'\progetto.sdb';
     {$ENDIF$}
     if  DataSistema.ProgettiPerco.Text <> mperco then        //***********
       begin
         DataSistema.Progetti.Edit;
         DataSistema.ProgettiPerco.Text:=mperco;
         DataSistema.Progetti.Post;
         //informa('progetti post');
       end;
            DataProge.ZConproge.Connected:=False;   //informa('2');
           DataProge.ZConproge.Database:=mPerco; //   informa('3');
           DataProge.ZConproge.Connected:=True;
         ApriTabProge;
         nome := DataSistema.Progetticod.text;
     GetDir(0, C);
         AssignFile(F,'Progetto.mem');
         Rewrite(F);
         Writeln(F, nome);
         Writeln(F, mperco);
         CloseFile(F);
     ShowMessage('Progetto attivato')
     except
          on E: Exception do
          ShowMessage( 'Error : '+ E.ClassName + #13#10 + E.Message );
          on E:EDatabaseError do
          Avverti('Si è verificato il seguente errore'#13#10+ E.Message+ #13+
             'è necessario riconvertire gli archivi'#13#10+
             'se l''errore persiste contattare il fornitore '+
             'del programma!!!!')
          else
          Avverti('Errore');


       end;
end;


procedure ApritabProge;
 var
 I  : integer;
 TTempZ : TZTable;
 begin
 //informa('Apri Tabproge');
   with DataProge do
     begin
      try
       I:= 0;
       while I < (ComponentCount) do
         begin
           if Components is TZTable then
             begin
               TTempz:= Components as TZTable;
               //Informa('TabProge   :'+TTempz.Name);
               TTempZ.Active:=False;
               TTempZ.Active:=True;
             end;
           I:= I+1;
         end;
 except
    on E:EDatabaseError do
          Avverti('In :'+TTempz.Name+ '  si è verificato il seguente errore'#13#10+ E.Message+ #13+
             'è necessario riconvertire gli archivi'#13#10+
             'se l''errore persiste contattare il fornitore '+
             'del programma!!!!')
 end;
    end;
end;
da l'errore solo qui:

DataProge.ZConproge.Connected:=False;
e poi naturalmente se si prosegue da altri errori
« Ultima modifica: Settembre 21, 2017, 04:04:54 am da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite
« Risposta #4 il: Settembre 29, 2017, 11:15:09 pm »
dopo vari tentativi ho il fondato sospetto che rendendo il database shared si possa risolvere il problema, come rendere condiviso un database sqlite?
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite (RISOLTO)
« Risposta #5 il: Ottobre 01, 2017, 01:11:18 am »
Credo di avere trovato il problema , ho messo nello stesso datamodule diverse ZTable con la stessa -tablename- perchè mi serviva avere nella stessa finestra vari dati della stessa tabella ma filtrati in modo diverso. Tutte queste ZTable erano collegate allo stesso ZConnection e questo determinava l'errore di "access violation"  a volte per: "Dataset is Locked" altre volte con altri messaggi. Verificato che i database SQLite sono shared  ho provato a fare un altro Datamodule dove ho messo le ZTable doppie con filtri diversi collegate ad un atro ZConnenction e in questo modo funziona e non da più errori. Qundi a questo punto penso di avere risolto il problema per cui metto "risolto".
« Ultima modifica: Ottobre 01, 2017, 01:13:26 am da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 2862
  • Karma: +9/-0
Re:errore zeoslib sqlite (RISOLTO)
« Risposta #6 il: Ottobre 01, 2017, 08:46:31 am »
Molto bene, ricordate solo una cosa. Quando avete bisogno d'aiuto sarebbe bene che allegaste un piccolo esempio che replica il problema. Così si riesce a circoscrivere lo stesso con tempistiche più ridotte.
Ieri è passato, domani è futuro, oggi è un dono...

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite (RISOLTO)
« Risposta #7 il: Ottobre 01, 2017, 10:57:58 pm »
questa innocente istruzione provocava l'errore di "access violation" : Datamodule1.ZConnection1.Connected:=False;
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Full Member
  • *****
  • Post: 205
  • Karma: +0/-0
    • Informatica Utile
Re:errore zeoslib sqlite (RISOLTO)
« Risposta #8 il: Ottobre 07, 2017, 03:17:01 am »

L'avere risolto con un sotterfugio l'errore mi lasciava perplesso e non mi convinceva ad andare avanti, perchè togliendo la connessione a ZConnection con False in Connected, con conseguente disattivazione di tutte le ZTable nel Datamodule, generasse un errore di "Access violation" e a volte proseguendo di "Operation cannot be performed on an inactive dataset"?
per cui ho continuato col debug e con la ricerca dell'arcano. Alla fine ho trovato questa istruzione che poteva essere la causa del secondo messaggio di errore
Codice: [Seleziona]
  
procedure TGescompF.DBEdit100Change(Sender: TObject);
begin
     DataProge.Progetto.Edit;
     DataProge.ProgettoImprevisti.Value:=
     (DataProge.ProgettoTOT_PROG.Value-DataProge.ProgettoTOTALE2.Value);
     DataProge.ProgettoTOTLETTERE.Value:= NumLettere(DataProge.ProgettoTOT_PROG.Value);
end;
ho provato a sostituirla con la seguente
Codice: [Seleziona]
procedure TGescompF.DBEdit100Change(Sender: TObject);
begin
 if  DataProge.Progetto.Active then
   begin
     DataProge.Progetto.Edit;
     DataProge.ProgettoImprevisti.Value:=
     (DataProge.ProgettoTOT_PROG.Value-DataProge.ProgettoTOTALE2.Value);
     DataProge.ProgettoTOTLETTERE.Value:= NumLettere(DataProge.ProgettoTOT_PROG.Value);
   end;
end;   
e tutto si è risolto, con l'istruzione OnChange andavo a scrivere su una tabella che non era attiva!
Effettuata la modifica il cambio degli archivi a runtime funziona perfettamente ma ho perso quasi un mese nella ricerca dell'errore.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

 

Recenti

How To

Utenti
  • Utenti in totale: 676
  • Latest: Twowal
Stats
  • Post in totale: 13741
  • Topic in totale: 1724
  • Online Today: 24
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 21
Total: 21

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.