Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: sergio - Luglio 05, 2020, 10:28:13 pm

Titolo: problemi con sqlite3Connection
Inserito da: sergio - Luglio 05, 2020, 10:28:13 pm
Ciao a tutti , scusate , mi sta succedendo un errore strano . Avevo quasi finito un gestionale ,ma ora mi appare una schermata che mi dice " Sqlite3Connection1 database connect string (DatabaseName) not filled in !"   A qualcuno è già successo . io ho controllato e mi pare di non aver commesso errori. Immetto il nome del Database cosi :
SQLite3Connection1.DatabaseName := Application.Location +'archivi\tabelle.db'; 
dopo aver disconnesso l'SqliteConnection1 .
SQLite3Connection1.Connected:= False;
Ogni consigliio è bene accetto ,  grazie in anticipo   Sergio
Titolo: Re:problemi con sqlite3Connection
Inserito da: Avogadro - Luglio 05, 2020, 10:46:43 pm
La butto lì, non sono ferrato in temi di connessione (uso un approccio diverso*)

ma non è che il problema è proprio qui, in  "Application.Location +'archivi\tabelle.db'" ?

magari prova con il debug a vedere a runtime che stringa restituisce

ciao

*
uso questo
var
AppPath: String;
...
AppPath := ExtractFilePath(Application.ExeName);
Titolo: Re:problemi con sqlite3Connection
Inserito da: antoniog - Luglio 06, 2020, 03:40:49 am
se usi zeoslib verifica che in zconnection non vi sia nulla in databasename visto che lo assegni a runtime
Titolo: Re:problemi con sqlite3Connection
Inserito da: xinyiman - Luglio 06, 2020, 08:14:01 am
Ciao, consiglio tre cose. Verifica se a quel percorso trova il file. Usando un

if not FileExists('percorso del file') then
   ShowMessage('Il problema è qui');

Poi con il programma con cui accedi al database verifica che non sia corrotto il file database.

Terzo non usare mai  "\" o "/" nei path. Usa System.DirectorySeparator che è multipiattaforma.
Titolo: Re:problemi con sqlite3Connection
Inserito da: SB - Luglio 06, 2020, 06:17:55 pm
Non si dovrebbe usare la proprietà "database"?
Titolo: Re:problemi con sqlite3Connection
Inserito da: sergio - Luglio 06, 2020, 11:50:24 pm
Grazie a tutti . Credo che per errore in databasename sia rimasto qualche cosa Ho guardato l'archivio ed é  ok , non è  corrotto ..Scusa Xinyiman ma cosa intendi per system directory separator ?  Ora devo ricontrollare tutte le occorrenze del database e poi vi relazioni.  Grazie ancora 👍
Titolo: Re:problemi con sqlite3Connection
Inserito da: bonmario - Luglio 07, 2020, 07:53:16 am
Scusa Xinyiman ma cosa intendi per system directory separator ?

nel tuo sorgente, hai scritto questo:
Codice: [Seleziona]
SQLite3Connection1.DatabaseName := Application.Location +'archivi\tabelle.db';  

La forma corretta, sarebbe questa:
Codice: [Seleziona]
SQLite3Connection1.DatabaseName := Application.Location +'archivi' + System.DirectorySeparator + 'tabelle.db';  

System.DirectorySeparator è una costante che, in Linux equivale a "/", mentre in Windows equivale a "\".
Con la modifica suggerita, lo stesso sorgente compilato in Linux funzionerebbe, come l'hai scritto tu no, perché in Linux il separatore di directory è "/", e non "\".

Ciao, Mario
Titolo: Re:problemi con sqlite3Connection
Inserito da: sergio - Luglio 11, 2020, 07:47:30 pm
Grazie mille per la dritta , la userò sicuramente , comunque il sistema andava in errore per un errore in un inserimento del databaseName di SQLIte3Connection1 . Grazie mille a tutti ! :-[