Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: petrusic - Gennaio 30, 2023, 06:12:51 pm

Titolo: [Risolto] Errore su ZComponent
Inserito da: petrusic - Gennaio 30, 2023, 06:12:51 pm
Dopo l'ultima resinstallazione di Lazarus, ho completato oggi un ciclo di modifiche ed ho avviato il progetto corrente per provare quanto fatto.

Ebbene mi sono trovato difronte ad un messaggio di errore, inizialmente NON capito, perchè non l'avevo collegato alla  reinstallazione. Infatti prima non si verificava.
Poi mi sono ricordato ed ho guardato nella finestra IDE->Progetto->Analizzatore. Ho scoperto che mancava il pacchetto zcomponent. Ho proceduto all'installazione attraverso la finestra "Installa/disinstalla pacchetti" e cliccando su "Installa" e poi su "Salve e ricostruisci l'IDE"
Sembra che l'installazione termini bene. Invece, riavviando l'esecuzione del programma, riappare l'errore e l?analizzatore Progetti dice sempre che manca il pacchetto "zcomponent".

Ho guardato anche l'elenco dei pacchetti nella finestra IDE->Pacchetto->On Line Package Manager e non vi trovo assolutamante il pacchetto zcomponent.

Ma che significa? Sbaglio percorso di installazione?
Purtroppo non ricordo più come ho proceduto la prima volta.
Titolo: Re:Errore su ZComponent
Inserito da: giacomarko - Gennaio 30, 2023, 07:37:11 pm
Successo anche a me, non ricordo se con Zeos o altro componente, 
che da quello che si vede sembra installato, almeno così dice  OPM ma facilmente qualche cosa non è andato a buon fine
ho risolto così;

a. aperto progetto nuovo, vuoto (ho l'impressione che disinstallare un componente in uso, faccia casino)
b. disinstallato il componente (nel tuo caso Zeos)
c. ricostruzione IDE
d. chiuso Lazarus
e. riaperto e installato il componente
f. ricostruzione IDE

a questo punto nella component bar diovresti trovare tutti i componenti Zeos

m
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Gennaio 31, 2023, 12:37:33 pm
Successo anche a me, non ricordo se con Zeos o altro componente, 
che da quello che si vede sembra installato, almeno così dice  OPM ma facilmente qualche cosa non è andato a buon fine
ho risolto così;

a. aperto progetto nuovo, vuoto (ho l'impressione che disinstallare un componente in uso, faccia casino)
b. disinstallato il componente (nel tuo caso Zeos)
c. ricostruzione IDE
d. chiuso Lazarus
e. riaperto e installato il componente
f. ricostruzione IDE

a questo punto nella component bar diovresti trovare tutti i componenti Zeos

m
Ho eseguito la prova che mi hai suggerito, ma a me non ha funzionato.

Si, è vero che nella barra dei componenti dell'IDE, per la scheda ZeosZAccess compaiono tutti i componenti ZEOS, ma il programma, al 1° accesso  tramite ZEOS  al DB SQLite, produce sempre lo stesso errore di "eccezione di classe".
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Gennaio 31, 2023, 04:22:55 pm
Ho ripreso la guida wiki (ftp://sourceforge.net/projects/zeoslib/) per l'installazione di Zeoslib ed ho eseguito il download   del file.zip.
A questo punto volevo capire in quale directory trasferire detto file per l'estrazione del suo contenuto, perchè, probabilmente l'IDE di Lazarus esegue le installazioni dei pacchetti in directory diverse da quelle dove, durante l'esecuzione del programma utente, vengono cercate.

Allora, attraverso l'IDE di Lazarus, sono andato in cerca del percorso corretto, trovando la realtà riportata nelle immagini allegate.
Dopo tutto ciò però non ho capito il quale directory destinare il file scaricato.
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Gennaio 31, 2023, 05:35:30 pm
Scusate se sto scrivendo in continuazione, ma poco fa ho trovato qui un caso di errore simile al mio eisalente al 2020 e che riguardava una forma di incompatibilità fra versione di Lazarus e versione di Zeos.lib

Non vorrei che il fenomeno si stia ripetendo nella relazione fra Lazaus 2.2.4  Zeoslib 7.2.14.

Perciò ho cercato e scaricato il file zeosdbo-7.2.12-stable.zip. Poi l'ho trasferito sotto la directory /home/petru/.lazarus/onlinepackagemanager/packages ed ho estratto il file .zip nella nuova cartella
/home/petru/.lazarus/onlinepackagemanager/packages/zeosdbo-7.2.12-stable.
Infine, ho aperto la finestra dell'IDE di Lazarus Pacchetto->Apri il file del pacchetto (.lpk) per arrivare fino alla directory zeosdbo-7.2.12-stable, ma mi sono dovuto fermare perchè non ho potuto vedere la cartella nascosta ".lazarus".


Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Gennaio 31, 2023, 10:40:48 pm
Non sono un conoscitore di Lazarus sotto Linux, e per questo ho evitato la discussione.

Però quello che ti stà succedendo a me pare molto simile ad altri disguidi segnalati negli aggiornamenti tra versioni.

Il tutto potrebbe accedere a seguito della presenza di cartelle / file rimasti dalle vecchie installazioni e che con le nuove versioni rimangono orfani in quanto i nuovi aggiornamenti adottano un percorso diverso.

Vedi se l'articolo nel blog: https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/ (https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/) ti è utile.
Mancano le path dove vengono posti i sorgenti e i compilati di Lazarus (.lazarus ?? ), vanno eliminate anche quelle prima di reinstallare Lazarus.

L'articolo ha già linkato i curl per l'ultima realease stabile di Lazarus / FPC.

La directory ".lazarus" si trova nella $Home e la puoi vedere con il comando "ls -a"

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 01, 2023, 10:45:07 am
Vedi se l'articolo nel blog: https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/ (https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/) ti è utile.
Mancano le path dove vengono posti i sorgenti e i compilati di Lazarus (.lazarus ?? ), vanno eliminate anche quelle prima di reinstallare Lazarus.
L'articolo ha già linkato i curl per l'ultima realease stabile di Lazarus / FPC.
Si, ho visto e riguarda quanto da me seguito, tramite le tue indicazioni, negli ultimi mesi di vicissitudini non felici con Lazarus.

Dopo l'ultima installazione, fatta sempre con "curl", Lazarus ha funzionato perfettamente. Poi ho dovuto aggiungere i componenti Zeos per la gestione del mio database, strutturato in SQLite. E' a quel punto che, avviando il programma per le dovute prove, al 1° accesso al database, è comparsa l'anomalia sull'eccezione di classe.
Ma, non essendo cambiato il metodo d'accesso al DB, rispetto alle precedenti versioni del mio programma, non ho capito da cosa potesse dipendere, perciò ho cercato altre spiegazioni e l'unica plausibile è stata quella di mancanza di compatibilità dell'insieme Zeoslib rispetto a Lazarus.

Citazione da: DragoRosso
La directory ".lazarus" si trova nella $Home e la puoi vedere con il comando "ls -a"
Si, lo so già, però ho visto che, entrando in IDE->Pacchetto->Apri pacchetto caricato, la ricerca dei file si indirizza verso  /usr/share/lazarus/2.2.4/components/ e francamente non ho capito più il meccanismo di ricerca.

Ora non so più se fidarmi di Zeosdbo-7.2.14 o se dovrò, a fine della prossima nuova installazione di Lazarus, optare per una versione precedente e dove, eventualmente caricarla per poterla rendere disponibile alle funzioni di ricerca di Lazarus "Online Package Manager".
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 02, 2023, 03:10:29 pm
Vedi se l'articolo nel blog: https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/ (https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/) ti è utile.
Mancano le path dove vengono posti i sorgenti e i compilati di Lazarus (.lazarus ?? ), vanno eliminate anche quelle prima di reinstallare Lazarus.
L'articolo ha già linkato i curl per l'ultima realease stabile di Lazarus / FPC.
Perfetto, ho seguito ancora una volta il percorso di installazione di Lazarus con curl, tenendo conto che esiste già il file
relativo al cerificato.

Tuttavia, non sono sicuro che L'installazione sia andata bene perchè, in coda, è apparso un messaggio per me incomprensibile.
Riporto pertanto le righe iniziali e finali dell'installazione.
Codice: [Seleziona]
petrus@petrus13:~$ curl -L https://cloud.dyn-o-saur.com/lazarus-ide | bash

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   714  100   714    0     0   1311      0 --:--:-- --:--:-- --:--:--  1312
Downloading Lazarus and FPC packages
--2023-02-02 14:43:47--  https://cloud.dyn-o-saur.com/fpc-laz_3.2.2-210709_amd64.deb
Risoluzione di cloud.dyn-o-saur.com (cloud.dyn-o-saur.com)... 217.198.132.230, 2a00:6d43:601:e600:3e37:12ff:feaa:da7
Connessione a cloud.dyn-o-saur.com (cloud.dyn-o-saur.com)|217.198.132.230|:443... connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: 39280196 (37M) [text/html]
Salvataggio in: ‘fpc-laz_3.2.2-210709_amd64.deb’

fpc-laz_3.2.2-21070 100%[===================>]  37,46M  5,75MB/s    in 6,8s   
. . .
. . .
Rebuilding /usr/share/applications/bamf-2.index...
Elaborazione dei trigger per desktop-file-utils (0.26-1ubuntu3)...
Configurazione di libxau-dev:amd64 (1:1.0.9-1build5)...
Configurazione di libice-dev:amd64 (2:1.0.10-1build2)...
Elaborazione dei trigger per gnome-menus (3.36.0-1ubuntu3)...
Configurazione di libsm-dev:amd64 (2:1.2.3-1build2)...
Elaborazione dei trigger per libglib2.0-0:amd64 (2.72.4-0ubuntu1)...
Configurazione di libxdmcp-dev:amd64 (1:1.1.3-0ubuntu5)...
Configurazione di libatk1.0-dev:amd64 (2.36.0-3build1)...
Configurazione di libgdk-pixbuf-2.0-dev:amd64 (2.42.8+dfsg-1ubuntu0.2)...
Configurazione di libharfbuzz-dev:amd64 (2.7.4-1ubuntu3.1)...
Configurazione di libxcb1-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libx11-dev:amd64 (2:1.7.5-1)...
Configurazione di libxfixes-dev:amd64 (1:6.0.0-1)...
Configurazione di libxcb-shm0-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libxcb-render0-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libxext-dev:amd64 (2:1.3.4-1build1)...
Configurazione di libxi-dev:amd64 (2:1.8-1build1)...
Configurazione di libxrender-dev:amd64 (1:0.9.10-1build4)...
Configurazione di libxft-dev:amd64 (2.3.4-1)...
Configurazione di libxdamage-dev:amd64 (1:1.1.5-2build2)...
Configurazione di libxcomposite-dev:amd64 (1:0.4.5-1build2)...
Configurazione di libxcursor-dev:amd64 (1:1.2.0-2build4)...
Configurazione di libxrandr-dev:amd64 (2:1.5.2-1build1)...
Configurazione di libxinerama-dev:amd64 (2:1.1.4-3)...
Configurazione di libcairo2-dev:amd64 (1.16.0-5ubuntu2)...
Configurazione di libpango1.0-dev:amd64 (1.50.6+ds-2)...
Configurazione di libgtk2.0-dev:amd64 (2.24.33-2ubuntu2)...
Configurazione di lazarus-project (2.2.4)...
N: Lo scaricamento è eseguito come root, ma non in una sandbox, poiché l'utente "_apt" non ha accesso al file "/home/petrus/lazarus-project_2.2.4-0_amd64.deb". - pkgAcquire::Run (13: Permesso negato)
petrus@petrus13:~$

Io non ricordo se, anche in passato è stato prodotto tale messaggio.

Ho riavviato il sistema e non ho trovato l'icona d'avvio di Lazarus nelle schermate di gnome. Esiste tuttavia presente fra le applicazioni preferite e Lazarus si avvia senza anomalie.

Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 02, 2023, 11:30:11 pm
C'è qualcosa che non và. avrebbe dovuto scaricare ed "eseguire" 3 file, invece li ne è stato scaricato ed eseguito solo 1 mi pare.

Il fatto che funzioni apparentemente tutto non và bene. Manca sicuramente da installare l'ultimo pacchetto (dato l'errore visualizzato).

Ciò significa che non hai tutto ciò che ti serve installato, oppure che una vecchia versione di Lazarus è rimasta.

Prova ad "eseguire" a mano i tre file scaricati secondo la sequenza indicata nel blog.

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 03, 2023, 10:53:18 am
C'è qualcosa che non và. avrebbe dovuto scaricare ed "eseguire" 3 file, invece li ne è stato scaricato ed eseguito solo 1 mi pare.
Il fatto che funzioni apparentemente tutto non và bene. Manca sicuramente da installare l'ultimo pacchetto (dato l'errore visualizzato).

Ciò significa che non hai tutto ciò che ti serve installato, oppure che una vecchia versione di Lazarus è rimasta.
Prova ad "eseguire" a mano i tre file scaricati secondo la sequenza indicata nel blog.

Eseguito, almeno spero di avere fatto bene, quanto mi hai indicato:
Codice: [Seleziona]
petrus@petrus13:~$ sudo dpkg -i fpc-laz_3.2.2-210709_amd64.deb
[sudo] password di petrus:
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre fpc-laz_3.2.2-210709_amd64.deb...
Estrazione di fpc-laz (3.2.2) su (3.2.2)...
Configurazione di fpc-laz (3.2.2)...
Running on linux
Write permission in /etc.
Writing sample configuration file to /etc/fpc.cfg
Saved old "fpc.cfg" to "fpc.bak"
Writing sample configuration file to /usr/lib/fpc/3.2.2/ide/text/fp.cfg
Saved old "fp.cfg" to "fp.bak"
Writing sample configuration file to /usr/lib/fpc/3.2.2/ide/text/fp.ini
Saved old "fp.ini" to "fp.bak"
Writing sample configuration file to /etc/fppkg.cfg
Saved old "fppkg.cfg" to "fppkg.bak"
Writing sample configuration file to /etc/fppkg/default
Saved old "default" to "default.bak"
Elaborazione dei trigger per man-db (2.10.2-1)...
petrus@petrus13:~$ sudo dpkg -i fpc-src_3.2.2-210709_amd64.deb
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre fpc-src_3.2.2-210709_amd64.deb...
Estrazione di fpc-src (3.2.2) su (3.2.2)...
Configurazione di fpc-src (3.2.2)...
petrus@petrus13:~$ sudo dpkg -i lazarus-project_2.2.4-0_amd64.deb
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre lazarus-project_2.2.4-0_amd64.deb...
Estrazione di lazarus-project (2.2.4) su (2.2.4)...
Configurazione di lazarus-project (2.2.4)...
Elaborazione dei trigger per bamfdaemon (0.5.6+22.04.20220217-0ubuntu1)...
Rebuilding /usr/share/applications/bamf-2.index...
Elaborazione dei trigger per mailcap (3.70+nmu1ubuntu1)...
Elaborazione dei trigger per gnome-menus (3.36.0-1ubuntu3)...
Elaborazione dei trigger per desktop-file-utils (0.26-1ubuntu3)...
Elaborazione dei trigger per shared-mime-info (2.1-2)...
Elaborazione dei trigger per man-db (2.10.2-1)...
petrus@petrus13:~$
Ho riportato la sequenza intera dei comandi. Ho guardato i messaggi generati durante l'esecuìzione dei file e mi pare che l'installazione di  fpc-src_3.2.2-210709_amd64.deb non sia andata bene, ma io non sono in grado di capire se ho interpretato bene. Di conseguenza non so ora il mio ambiente Lazarus sia completo.

Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 04, 2023, 02:45:13 pm
A me pare che sia andato tutto bene. Ha riscritto anche i file di configurazione, quindi devresti essere a posto.
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 04, 2023, 05:57:25 pm
A me pare che sia andato tutto bene. Ha riscritto anche i file di configurazione, quindi devresti essere a posto.
Va bene.

Allora, dovrei essere pronto per installare ZeosLib. E qui conviene, secondo me, modificare il procedimento perchè l'ultima installazione apparentemente sembrava essere andata bene, invece poi, nell'esecuzione in prova è comparso il messaggio con l'errore di "eccezione di classe".

Ho potuto accertare che l'errore si manifesta , subito dopo l'avvio, dopo i controlli preliminari sul file di database,  al momento dell'esecuzione della prima istruzione del seguente gruppo:
Codice: [Seleziona]
procedure TForm1.Panel1Enter(Sender: TObject);
var
  totRecQry: Integer;

  msgErro, msgScelta, sql: String;

begin
  Menu2.Enabled:= False;
  if not FileExists(dbOrig) then
  begin
   ShowMessage('DB ' + dbOrig + ' INESISTENTE - il Programma verra'' chiuso');
    Halt;   // Halt interrompe BRUTALMENTE l'esecuzione del programma e restituisce il controllo al chiamante
  end;           
. . .                           
  sql:= 'SELECT IdRiepMovg FROM riepmovg';   
  DataModule1.ZReadOnlyQuery1.Active:= False;     // <-- istruzione che provoca l'errore di "ECCEZIONE DI CLASSE"
  DataModule1.ZConnection1.Database := dbCorr;
  Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
  DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
  DataModule1.ZReadOnlyQuery1.Active:= True;
  if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
  begin                                               
. . .

La prima incertezza è:
- Se reinstallo da IDE -> Pacchetto -> Online Package Manager  per selezionare ZeosDBO ed installare, sicuramente mi si ripresenterà il problema.
- Se scarico da SourceForge il file  zeosdbo-7.2.14-stable.zip per installarlo manualmente, poi non sono in grado di procedere all'installazione, perchè non l'ho mai fatto e non ho trovato una guida o una nota che mi spiegasse come fare.

Ho trovato proprio poco fa questa guida (https://wiki.freepascal.org/ZeosDBO) ed ho seguito  le indicazioni fino all'esecuzione dei comandi indicati per Linux subversion, però l'IDE di Lazarus non è stato aggiornato.

Sono, perciò, al punto di prima.
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 04, 2023, 08:00:41 pm
Ma dopo avere compilato ed installato (che immagino siano andati a buon fine) ... hai ricompilato l'IDE ?
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 05, 2023, 03:40:03 pm
Ma dopo avere compilato ed installato (che immagino siano andati a buon fine) ... hai ricompilato l'IDE ?
No, veramente no.

Ho provato a ricostruire l'IDE, ma mi ha dato il seguente ERRORE:
Citazione
"Il progetto richiede il pacchetto "pack_powerpdf"
Ma non è stato trovato, Vedere progetto -> Analizzatore progetti."

Riepilogo quanto fatto: Ho eseguito i seguenti comandi:
Codice: [Seleziona]
sudo apt-get install subversion
  cd zeosdbo
 1162  svn co http://svn.code.sf.net/p/zeoslib/code-0/trunk
 1163  sudo apt update
 1164  sudo apt upgrade
sotto zeosdbo c'è:
Codice: [Seleziona]
			   zeosdbo
petrus@petrus13:~$ cd zeosdbo
petrus@petrus13:~/zeosdbo$ dir
trunk
petrus@petrus13:~/zeosdbo$ cd trunk
petrus@petrus13:~/zeosdbo/trunk$ dir
artwork  COPYING.ZEOS   documentation  packages  zeosbugtemplate
build database   examples src
COPYING  developer_diary  lib test
petrus@petrus13:~/zeosdbo/trunk$
Ho cercato il pack_powerpdf, ma non l'ho trovato.
Sono assolutamente disorientato, perchè potrebbe essere che:
- pack_powerpdf non sia un pacchetto di Zeos e ciò potrebbe signicare che l'installazione di Lazarus non sia stata conclusa correttamente,
- la directory zeosdbo che ho creato non sia riconosciuta, magari perchè creata fuori dal percorso di ricerca dell'IDE di Lazarus.

Ho guardato infine in IDE -> Pacchetto -> Online Package Manager e sulla riga di Zeosdbo compare la dicitura "installato parzialmente"

 :o








Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 05, 2023, 06:30:30 pm
Installa "PowerPdf" dall'online package manager (ritengo sia quello che manca).

L'installazione di Zeos è parziale perchè non hai ricostruito l'IDE (anche questa è una supposizione).

Puoi anche non installare PowerPdf: se vai in Installa / Disintalla Pacchetti dovresti avere nella colonna di sinistra prprio quel pacchetto che risulta da installare, se lo rimuovi non ti verrà richiesto.

Poi, ricostruisci l'IDE.

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 06, 2023, 04:36:57 pm
Installa "PowerPdf" dall'online package manager (ritengo sia quello che manca).

L'installazione di Zeos è parziale perchè non hai ricostruito l'IDE (anche questa è una supposizione).
Ho visto in Online Package Manager che i file del pacchetto ZeosDBO erano stati estratti, ma non installati. Ho così completato l'installazione ed ho ricostruito Lazarus.

infine, seguendo il tuo consiglio su Powerpdf  e l'ho disinstallato.

Però, nonostante che ora ZeosDBO sia installato, l'avvio del programma si interrompe sempre allo stesso punto col solito messaggio di Errore per Eccezione di classe.

Io temo che con l'ultima versione di Lazarus (2.2.4),  installata come la precedente (2.2.0) automaticamente con "curl", ci sia un problema di compatibilità con ZeosDBO 7.2.14.

Perciò penso già da qualche giorno di ripulire tutto l'ambiente Lazarus ed installare la versione che 2.2.0, con cui il programma sia avviava senza anomalie sul database.

Per fare ciò penso anche che non posso affidarmi a curl, perchè mi troverei ad installare sempre l'ultima versione di Lazarus.
Occorrebbe perciò farlo manualmente scaricando da SourceForge i file:
lazarus-project_2.2.0-0_amd64.deb
fpc-laz_3.2.2-210709_amd64.deb
fpc-src_3.2.2-210709_amd64.deb
 per installarli poi da riga di comando.

Fin li posso farcela, ma non saprei come fare per installare poi ZeosDBO manualmente.


Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 06, 2023, 04:47:27 pm
Fin li posso farcela, ma non saprei come fare per installare poi ZeosDBO manualmente.

Sotto Linux non posso darti una mano per questo ... però sinceramente dubito che i problemi siano di Lazarus "nuovo" e "Zeos" Online ... li avrebbero in tanti.

Hai provato a costruire un nuovo programma con un componente ZEOS e compilarlo ?
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 06, 2023, 06:32:26 pm
Sotto Linux non posso darti una mano per questo ... però sinceramente dubito che i problemi siano di Lazarus "nuovo" e "Zeos" Online ... li avrebbero in tanti.
Hai provato a costruire un nuovo programma con un componente ZEOS e compilarlo ?
Ciò mi scoraggia, perchè significa che, pur avendo precisato che l'anomalia compare Nella Form1, subito dopo l'avvio del programma, al 1° accesso al database, dove il codice esiste da tempo e non mi ha manifestato mai, prima d'ora, l'Errore per eccezione di Classe, NON sono creduto,

Eppure qui (http://www.lazaruspascal.it/index.php?topic=2304.msg14405#msg14405) è accaduto qualcosa del genere (anche qui con l'uso di una datamodule), addirittura dopo avere modificato il codice pertinente ed, allora, il problema è stato superato, proprio eseguendo una retrocessione di versione.

Non mi rifiuto di provare con un nuovo progetto, ma francamente non capisco perchè dovrei iniziare un nuovo progetto.
 ???
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 06, 2023, 07:30:56 pm
......
Ciò mi scoraggia, perchè significa che, pur avendo precisato che l'anomalia compare Nella Form1, subito dopo l'avvio del programma, al 1° accesso al database, dove il codice esiste da tempo e non mi ha manifestato mai, prima d'ora, l'Errore per eccezione di Classe, NON sono creduto
.....

Non prendertela, non è che non ti credo. Il problema è che può essere che quel tipo di errore derivi ad esempio dal progetto (.lpi) che per qualche motivo viene letto in modo errato o ha qualche configurazione che fà l'override della configurazione di base corrente di Lazarus / fpc .....

Quindi per verificare al volo se l'ambiente Lazarus è corretto si può partire con un nuovo progetto al volo banale e verificare che ci sia o no il problema.

Poi se vuoi installre la vecchia versione puoi farlo, ma non posso aiutarti oltre perchè non ho le conoscenze sufficienti.

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 07, 2023, 05:26:52 pm
Non prendertela, non è che non ti credo. Il problema è che può essere che quel tipo di errore derivi ad esempio dal progetto (.lpi) che per qualche motivo viene letto in modo errato o ha qualche configurazione che fà l'override della configurazione di base corrente di Lazarus / fpc .....

Quindi per verificare al volo se l'ambiente Lazarus è corretto si può partire con un nuovo progetto al volo banale e verificare che ci sia o no il problema.

Più che altro sono stanco. Non riesco a capire perchè si è manifestata un'anomalia che prima non esisteva.

Comunque, prima di riguardare il programma corrente, ho caricato in Lazarus un altro progettino che esegue la lettura di particolari record di una tabella dello stesso database e, trovandoli, ne comanda la cancellazione.
Per costringerne la compilazione ho aggiunto una variabile ed ho avviato.

Ebbene, il programma ha funzionato alla perfezione, senza errori.

Ho allora riguardato pazientemente il programma che mi scatena l'Errore e non ho trovato niente che possa spiegarmi la segnalazione d'eccezione di classe.

Riporto qui il codice dove si genera l'errore col messaggio di writeln della variabile contenente il percorso relativo al database impiegato
Codice: [Seleziona]
procedure TForm1.Panel1Enter(Sender: TObject);
. . .
  sql:= 'SELECT IdRiepMovg FROM riepmovg';
  Writeln('dbCorr ="' + dbCorr + '"');
  DataModule1.ZConnection1.Database:= dbCorr;     <== ERRORE

  DataModule1.ZConnection1.Connected:= True;
  DataModule1.ZReadOnlyQuery1.Active:= False;
  Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
  DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
  DataModule1.ZReadOnlyQuery1.Active:= True;
  if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
  begin                                           
Contenuto della Console:
Citazione
procedure TForm1.FormCreate
procedure TForm1.Panel1Enter
dbCorr ="/media/dirdati/dativari/contabfam/ContabFamdb_prove"


Rilevazione estremi file da terminale:
Codice: [Seleziona]
petrus@petrus13:~$ ls -l /media/dirdati/dativari/contabfam/ContabFam*
-rwxrwxrwx. 1 petrus petrus 11922432 feb  7 15:49  /media/dirdati/dativari/contabfam/ContabFamdb
-rwxrwxrwx  1 petrus petrus 11922432 feb  7 15:50 '/media/dirdati/dativari/contabfam/ContabFamdb(copia)'
-rwxrwxrwx  1 petrus petrus 11922432 feb  7 17:04  /media/dirdati/dativari/contabfam/ContabFamdb_prove


Veramente, NON capisco e non so che fare.
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 07, 2023, 06:51:08 pm
Posta i 4 file ".lpi" e ".lpr" (2 del progetto che non ti funziona e 2 del progetto che ti funziona).

Secondo me sono quelli che sono "malformati" ....
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 07, 2023, 11:01:42 pm
Eccoli, in allegato. DomusRatio è il progetto che NON funziona.
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 08, 2023, 02:06:17 pm
Prova con questi ...
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 08, 2023, 03:23:07 pm
Prova con questi ...
Non è cambiato niente. Ma cosa hai notato che andava modificato?
Quando ho avviato la compilazione, mi ha dato errore alla linea 101 dove ho trovato </Unit6>. Togliendo il 6 la compilazione è andata bene ed il programma s'è avviato, però, come detto prima, col solito messaggio d'eccezione di classe.
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 08, 2023, 04:18:06 pm
Dopo la prova che mi hai suggerito, ho ripreso una vecchia versione del mio programma in lavorazione, risalente ad Ott.2022.
Ho provato ad avviarlo ed è andato avanti liscio come l'olio, superando quindi il punto critico che c'è nell'ultima versione.
Naturalmente mancano le aggiunte fatte da quell'epoca fino ad oggi (diciamo ad oggi).

Non capisco in che cosa possano avere influito le implementazioni apportate e non capisco perchè l'errore si presenti subito al 1° accesso al DB, passo già esistente anche nella versione Ott.2022.

Forse occorrerebbe individuare da quale momento delle nuove aggiunte si manifesta l'Errore. Che ne pernsi?

Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 08, 2023, 05:21:28 pm
Non è cambiato niente. Ma cosa hai notato che andava modificato?
Quando ho avviato la compilazione, mi ha dato errore alla linea 101 dove ho trovato </Unit6>. Togliendo il 6 la compilazione è andata bene ed il programma s'è avviato, però, come detto prima, col solito messaggio d'eccezione di classe.

Era solo che il tracciato era formato in una altra modalità, poi compariva "zcore" tra i componenti (che ho tolto). Inoltre le path erano quelle in uso in Windows (con l'apposito modificatore) e le ho convertite direttamente per Linux.
Nel ".LPI" era inserito un percorso di libreria che sull'altro progetto non c'era (e neanche nei miei), e quindi avevo tolto anche quello.
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 08, 2023, 05:30:32 pm
Dopo la prova che mi hai suggerito, ho ripreso una vecchia versione del mio programma in lavorazione, risalente ad Ott.2022.
Ho provato ad avviarlo ed è andato avanti liscio come l'olio, superando quindi il punto critico che c'è nell'ultima versione.
Naturalmente mancano le aggiunte fatte da quell'epoca fino ad oggi (diciamo ad oggi).

Non capisco in che cosa possano avere influito le implementazioni apportate e non capisco perchè l'errore si presenti subito al 1° accesso al DB, passo già esistente anche nella versione Ott.2022.

Forse occorrerebbe individuare da quale momento delle nuove aggiunte si manifesta l'Errore. Che ne pernsi?

Sono quasi certo che l'ambiente Lazarus e FPC non c'entri con l'errore che hai. A proposito, potresti fare lo screenshoot dell'errore così provo a cercarlo tra i sorgenti runtime per capire a cosa è dovuto ?

Capire in quale momento (ossia con quale modifica) si è presentato l'errore la prima volta sarebbe bello, ma a meno che tu non abbia usato un sistema di "versionamento" dubito che si riesca a trovare quel fatidico momento.

Ciao

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 08, 2023, 06:15:44 pm
Sono quasi certo che l'ambiente Lazarus e FPC non c'entri con l'errore che hai. A proposito, potresti fare lo screenshoot dell'errore così provo a cercarlo tra i sorgenti runtime per capire a cosa è dovuto ?

Capire in quale momento (ossia con quale modifica) si è presentato l'errore la prima volta sarebbe bello, ma a meno che tu non abbia usato un sistema di "versionamento" dubito che si riesca a trovare quel fatidico momento.

Cattura Schermata fatta.

Visto che sono fermo ormai da troppi giorni e visto che ho una situazione di programma cristallizzata al momento immediatamente precedente all'ultima modifica, FUNZIONANTE, ho messo in pratica quanto pensavo e ripercorrere a piccoli passi le aggiunte apportate fino al momento della sventurata sorpresa. Ho già provato i primi 3 passaggi dopo il 23.ott.2022 e tutte le prove hanno funzionato perfettamente. In esse ho aggiunto due righe di sottomenù ed una Form con la relativa procedura di CreateForm.

La versione con la manifestazione dell'Errore c'è sempre
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 08, 2023, 06:30:58 pm
Sei sicuro che il DataModule1 sia stato istanziato al momento della chiamata? Non è che semplicemente lo chiami prima che venga creato ? Nel file di progetto il DataModule1 non viene creato automaticamente ....

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 08, 2023, 10:14:20 pm
Sei sicuro che il DataModule1 sia stato istanziato al momento della chiamata? Non è che semplicemente lo chiami prima che venga creato ? Nel file di progetto il DataModule1 non viene creato automaticamente ....

Non sono in grado di dirti esattamente quando venga richiamata la procedura "TDataModule1.DataModuleCreate", però posso dirti che, dalle righe Writeln di controllo che sono abituato ad usare per capire e verificare dati e sequenze procedurali, la prima procedura che si avvia subito dopo la  "procedure TForm1.FormCreate" è la "procedure TForm1.Panel1Enter", cioè quella in cui eseguo il 1° accesso al DB con il gruppo di istruzioni seguente:
Codice: [Seleziona]
  DataModule1.ZReadOnlyQuery1.Active:= False;
  DataModule1.ZConnection1.Database := dbCorr;
  Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
  sql:= 'SELECT IdRiepMovg FROM riepmovg';
  DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
  DataModule1.ZReadOnlyQuery1.Active:= True;
  if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
  begin                                         

Ecco, quando viene eseguita la prima istruzione di tale procedura, il DataModule1 è stato già creato, come puoi vedere nella finestra della Console di Lazarus, allegata.

Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 09, 2023, 11:39:00 am
Non sono in grado di dirti esattamente quando venga richiamata la procedura "TDataModule1.DataModuleCreate", però posso dirti che . . .Console di Lazarus, allegata.

Ho rivisto stamattina le impostazioni dati al progetto in: IDE -> Progetto -> Opzioni progetto -> Form. Il DataModulo1 è stato impostato con "Creazione automatica" , come la Form1 (vedi allegato). Ecco perchè io l'ho sempre trovato già creato al 1° accesso nel DB.

Scusami, ma non ricordavo che tutte le nuove Form disegnate e salvate vengono inserite con l'opzione "Creazione automatica".
Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 09, 2023, 02:36:46 pm
C'è qualcosa che non và ... il progetto che hai postato non ha il datamodule creato automaticamente:

Codice: [Seleziona]
program DomusRatio;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, datetimectrls, memdslaz, runtimetypeinfocontrols, zcomponent,
  pack_powerpdf, FrmMain, Frm2, Frm3, Frm4, Frm5, utilmie, Frm7, Frm6, Frm8,
  UModuloDatiDB, Frm9;

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  Application.Scaled:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);  <---- Creazione automatica
  Application.CreateForm(TForm9, Form9);  <---- Creazione automatica
  Application.Run;
end.
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 09, 2023, 02:58:08 pm
C'è qualcosa che non và ... il progetto che hai postato non ha il datamodule creato automaticamente:

Si, è vero. L'ho ripreso ed ho impostato l'opzione di creazione automatica. Ho provato ad eseguirlo ed, infatti, l'errore di eccezione non compare più.

Non mi ricordavo proprio di avere modificato quell'impostazione e, dopo tanti giorni occupati nelle ultime aggiunte, non me ne sono più ricordato.

Ora nasce il dubbio: lasciare che il datamodule1 si crei automaticamente o no?
Io, se non ci sono appesantimenti operativi, lo lascerei così (con la creazione automatica).


Titolo: Re:Errore su ZComponent
Inserito da: DragoRosso - Febbraio 09, 2023, 03:25:04 pm
Come si dice .... l'importante è risolvere.

Partenza automatica o no nulla cambia. E' solo una semplificazione che ti consente l'ambiente di sviluppo. Invece di istanziarlo a mano tu lo istanzia "lui".... tanto sarebbe lo stesso identico codice.

Consiglio spassionato (in realtà non tanto ...  ;D ) : non modificare le opzioni di progetto standard (tipo avvio automatico o cambio della sequenza di avvio) A MENO CHE TU NON SAPPIA cosa stai facendo.

In genere è buona consuetudine lasciare tutte le opzioni come da default.

Ciao
Titolo: Re:Errore su ZComponent
Inserito da: petrusic - Febbraio 09, 2023, 04:19:44 pm
Consiglio spassionato (in realtà non tanto ...  ;D ) : non modificare le opzioni di progetto standard (tipo avvio automatico o cambio della sequenza di avvio) A MENO CHE TU NON SAPPIA cosa stai facendo.

In genere è buona consuetudine lasciare tutte le opzioni come da default.

E' successo perchè non ho fatto caso alla particolarità del Datamodule.
Può darsi che mi sbaglio, ma , dato che utilizzo nei miei programmi, da sempre, le Form modali, in Lazarus ho sempre lasciato automatica soltanto la creazione della  Form1.
L'ho sempre fatto, allo scopo di risparmiare spazio di memoria. Se le lascio creare tutte automaticamente, Lazarus le crea tutte all'inizio, sprecando perciò tanta memoria, e quasi sicuramente, non sarà sfruttata tutta.

Diverso è invece lo spirito d'utilizzo del Datamodule che conviene avere disponibile per tutta la durata del programma ed accedere così in qualsiasi momento è più volte al DB.

Sicuramente ho imparato la lezione. Mi dispiace soltanto di avere impegnato anche te in una ricerca di un errore che avevo sotto il naso senza sentirne, però, l'odore.

Posso, finalmente, porre "risolto".
 :D