Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: antoniog - Maggio 11, 2020, 09:50:38 pm

Titolo: Database connection component is not assigned
Inserito da: antoniog - Maggio 11, 2020, 09:50:38 pm

7.1.2-stable e sqlite3

Buongiorno,
accedendo ad alcune form contenete dei campi collegati a tabelle sqlite3 ricevo il messaggio in oggetto.
 ho provato a riassegnare la connection all'apertura delle tabelle ma il messaggio di errore c'è sempre.
Le tabelle vengono prima chiuse, poi viene assegnato il database ed in ultimo vengono aperte con il seguente codice
Codice: [Seleziona]

       for i:= 0 to ComponentCount-1 do
         begin
           try
             if Components[I] is TZTable then
               begin
                 try
                 begin
                 TTemp:= Components[I] as TZTable;
                  if (TTemp.Name <> 'Esercizi') and
                    (TTemp.Name <> 'Aziende')  then
                    begin
                      Filename:= TTemp.Tablename;
                      //informa('il file è :' + filename);
                      TTemp.Active:=False;
                      TTemp.Connection:=ZConnection1;
                      TTemp.Active:=True;
                    end else  TTemp.Active:=True;
                 end;
                  except
                     on E: Exception do
                     begin
                       Informa('Si è verificato un errore in una o più tabelle'#13#10+
                                   'in Apri Tabelle per ' + FileName);
                        exit;
                     end;
               end;
                  end;
           except
             on E: Exception do
             begin
             Informa('Si è verificato un errore in una o più tabelle'#13#10+
             'in Apri Tabelle per ' + FileName+
             '   è necessario riconvertire gli archivi'#13#10+
             '   o scegliere un altro esercizio'#13#10+
             'Sarà attivato l''Esercizio di Esempio');
             DataConta.Aziende.Active:=True;
             DataConta.Esercizi.Active:=True;
             exit;
            end;
           end;
         end;
Titolo: Re:Database connection component is not assigned
Inserito da: bonmario - Maggio 12, 2020, 08:01:20 am
Ciao,
- per la connessione, usi i componenti standard, o altri tipo Zeos ?
- l'errore, su quale specifica viene segnalato?
- la connessione la crei tu a runtime, o è creata a designtime?
- può essere che quel codice lo lanci dalla OnCreate, o cose del genere, quando l'oggetto che usi per la connessione non è ancora stato effettivamente creato?

Ciao, Mario
Titolo: Re:Database connection component is not assigned
Inserito da: antoniog - Maggio 13, 2020, 09:47:28 am
Ciao Bonmario, grazie per la risposta.
Il programma è in fase di aggiornamento  e riguarda la gestione di contabilità ordinaria multiaziendale, vengono memorizzati in un file di testo i dati per accedere all'archivio da aprire all'avvio o al cambio di esercizio o di azienda.
Uso Zeos con sqlite3 e per quanto possibile le componenti visuali. Fortunatamente faccio il backup dei dati quasi giornalmente e dopo avere perso tre giorni alla ricerca di soluzioni per vari errori misteriosi comparsi  ho provato a lanciare le varie copie salvate, l'ultima copia perfettamente funzionante è dell' 8 maggio. Dopo devo avere fatto qualcosa che ha danneggiato il sistema non nel codice da me scritto, che è rimasto lo stesso, ma da qualche parte altra parte. Impossibile da capire.