Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: gianpa - Gennaio 13, 2013, 05:27:34 pm

Titolo: usare tabella di sqlite3
Inserito da: gianpa - Gennaio 13, 2013, 05:27:34 pm
Ho cercato ovunque prima di scrivere ,ma non ho trovato soluzione ad un quesito di per sè semplice: aprire da lazarus una tabella creata con sqliteadmin !!!
La tabella si crea con facilità, i componenti da usare sono già nella tool palette e facili da aggiungere alla form !
il progetto si compila senza errori ...ma nella dbgrid non appare nulla !
rendendo ACTIVE la sqlQuery mi dice che non trova la tabella che però c'è! il path per il database l'ho scritto nel sqlite3connection perchè non è possibile fare SFOGLIA,ma ho provato con percorso assoluto e relativo,ma il risultato non cambia!
cos'è che non va ?????????????

grazie in anticipo!
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 13, 2013, 10:04:06 pm
Scusami, fammi capire.
Hai messo a mano il DB ... e fino a qui nessun problema.
Hai attivato la connessione? Non da errore.
Scrivi la query (Select * from tabella_che_mi_interessa) e quando l'attivi dice che la tabella non esiste?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 14, 2013, 12:06:18 am
esatto!
per prova ho messo un componente dbedit ,l'ho collegato al datasource ,ma se sfoglio il datafield non trovo alcun campo della mia tabella !!! che quindi vuol dire che non è disponibile , come mai ?

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 14, 2013, 09:41:38 am
La query l'hai testata con sqliteadmin?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 14, 2013, 05:02:14 pm
cioè ?
come si fà ???

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 14, 2013, 10:32:51 pm
in crea nuova query ho messo:
 select * from tabella1
ed ho eseguito con risultati !!!

poi ???

nessun messaggio mi dice eseguita correttamente,ma
sulla barra appare eseguita in 0 sec

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 15, 2013, 01:13:59 pm
La tabella1 è vuota?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 15, 2013, 02:48:22 pm
sì !!!

Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 15, 2013, 02:50:05 pm
Se è vuota e non trova niente ... non mi sembra sbagliato...  tu cosa ti aspettavi?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 15, 2013, 06:41:54 pm
ma dice che non trova proprio la tabella !
proverò a metterci qualche dato e ti faccio sapere

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 15, 2013, 09:25:53 pm
giampa, inizio a non capirci una benedetta fava, allega il progetto (fanne uno zip) così possiamo controllare cosa non funziona (metti anche il db sqlite).
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 16, 2013, 10:06:19 am
mi dice che il max è di 200 kb per gli allegati !
ma è pochissimo!
solo l'icona creata da lazarus è 135 + 135 per il file .res

come si fà ad allegare il progetto che arriva minimo a 350 kb ???

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 16, 2013, 10:08:49 am
Hai provato a pulire i compilati?
Titolo: Re:usare tabella di sqlite3
Inserito da: Legolas - Gennaio 16, 2013, 11:50:12 am
Oppure: Progetto->Pubblica progetto...

Nella dialog seleziona una directory dove esportare il progetto, aggiungi il file del database e zippa tutto. Dovrebbe essere abbastanza piccolo da rientrare nel limite dei 200kb
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 16, 2013, 03:35:38 pm
ecco!!

grazie

e ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 16, 2013, 04:05:11 pm
ho provato anche cambiando il percorso del db ma sembra non cambiare nulla:
se clikko sul componente sqlquery e provo ad aggiungere i campi mi dà errore !!! non credo che il problema sia nei campi vuoti !?

Lo rimetto anche così...ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 16, 2013, 04:18:10 pm
Bingo ...
Piccolo errore di sbaglio.

Allora SQLite se ti connetti con un file inesistente lo crea.
Poi sono affari tuoi.

Hai un file che si chiama
"primaProva3.s3db"
e uno
"primaprova.s3db"
Scondo te cosa c'è scritto sul file lfm?
"DatabaseName = 'd:\proveLazarus\primaprova.s3db'"

primaprova.s3db questo file è grande 0 byte.
primaProva3.s3db è grande 3k.

Così senza nemmeno aprire lazaurs e controllare ;)
(Mi hanno insospettito i due file s3db ... :D)

Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 16, 2013, 05:04:27 pm
era un mio dubbio quel db a zero ; infatti nel secondo allegato ho provato ad indicare il file con 3k ,ma la situazione non cambia!!!

cosa intendi tu ?
cosa devo modificare perchè io sia in grado di aggiungere i campi e scegliere (ad esempio) un campo da abbinare al dbEdit1 ???

ciao e GRAZIE!!!
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 16, 2013, 05:08:58 pm
Lo guardo a casa.
In ufficio non posso esagerare ;)
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 16, 2013, 09:53:32 pm
Mamma mia l'avevi incasinato per benino ;)

Dai che ora apre la tabella anche a design.
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 10:32:22 am
Grazie ! ora lo provo per vedere che guai ho combinato!
Mi sono accorto che procedere come facevo col DELPHI non va per niente bene!!! devo entrare in una nuova mentalità!

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 11:29:58 am
FANTASTICO ragazzo !!! funge come volevo !!!
ma... lo guardo e lo riguardo e .. ??? dove avevo sbagliato ?
mi sembra tale e quale , rivelami il mistero ...per curiosità !

Ciao e GRAZIE ancora
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 11:35:11 am
Semplicemente ho fatto puntare (design time) al database giusto il connettore.
Ho messo la query e ho attivato tutto.
Man mano che mi dava errore ho tolto il codice, in modo che rimanesse la "configurazione" dei componenti fatta con il designer.

;)
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 12:11:16 pm
Molto in gamba !
devo partire da quì per capire come ci si muove !

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 02:35:25 pm
Allora! ho provato a :
1) creare un nuovo database cambiando il NAME rispetto a primaprova3
2) creare una tabella cambiando name rispetto a Tabella1
3) sostituisco il nuovo database al vecchio ,

e... trovo di nuovo tutti i vecchi errori !!!!!!!!!!
cosa si deve fare per connettersi ad un NUOVO database ???

mica si deve ripartire da capo ogni volta!!??

con sqliteAdmin se apro il vecchio primaprova3 mi dice "connesso";
non me lo dice col nuovo...

CIAOOOOO
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 02:43:16 pm
Metti i nomi corretti?
Controlla di nuovo
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 03:03:12 pm
ora , che ho messo solo la pass masterkey , (mah?) mi dice "no such table:tabella2" ,quindi almeno il nuovo db "Dati" lo vede ,ma non la tabella che è chiaro che si chiama così visto che tengo aperto l'sqliteadmin per controllare!
ora nella barra di sqliteadmin si legge "database connesso"

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 03:14:44 pm
sqliteadmin  è una cosa, quello che stai scrivendo tu un'altra ;)
Controlla quella, non sqliteadmin. :D
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 03:25:47 pm
comunque l'errore (no such table) me lo dà quando metto active a TRUE del comp.sqlQuery ! però poi eseguendo il programma TUTTO funziona ,e questa dannata tabella la trova!!!!

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: nomorelogic - Gennaio 17, 2013, 03:27:57 pm
ricontrollato il nome della tabella nel componente?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 03:34:55 pm
Non riesco a trovare nessun componente che mi richiede il nome della tabella!
l'unico posto dove lo indico è in sqlquery.sql dove ho messo select * from miatabella

ciao

cercando di aggiungere i campi giustamente mi dice:
impossibile ottenere la lista campi del dataset
controlla le impostazioni del dataset
access violation
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 03:36:05 pm
Ma hai attivato tutti i componenti? (Connessione, Transazione, Query)
O solo la Query?
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 03:55:10 pm
Attivati ???
li ho messi sulla mia form e li ho collegati tra loro perchè si passassero le informazioni !
in ogni caso funzionava tutto ... ma ho provato a collegare un nuovo db e non va più !!!
o meglio funziona ma mi carica i campi della vecchia tabella e se voglio scegliere x aggiungere quelli nuovi mi dà l'errore di cui sopra!

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 04:17:40 pm
rimettendo il vecchio db e la vecchia tabella non funziona più nonostante sia tutto come prima!!! vuol dire che non ho capito come si deve fare per far PUNTARE il programma al Database !!!


HELP !!!


ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 04:36:07 pm
Metti solo il nome. Corretto.
Fai copia e incolla.
Mi raccomando, fai partire lazarus dalla cartella del progetto.
;)
Titolo: Re:usare tabella di sqlite3
Inserito da: Legolas - Gennaio 17, 2013, 04:56:04 pm
Domanda: non è che hai il database aperto sia in Lazarus che con sqliteadmin? Nel caso, prova a chiudere sqliteadmin e a riprovare
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 09:03:07 pm
Metti solo il nome. Corretto.
Fai copia e incolla.
Mi raccomando, fai partire lazarus dalla cartella del progetto.
;)

il nome corretto del db o della tabella ???
cosa devo copiare ? il file ? o il path?

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 09:21:20 pm
Giampa,
facciamo così.
Diattiva tutti i componenti (Active=False).
Prendi il nome del DB completo di PATH e lo metti nel nome che si aspetta il componente per trovare il db.
Attiva la connessone.
Controlla che non ti abbia creato altri file in giro per il disco.
Attiva la transazione.
Scrivi la query che ti interessa (select * from fuck-table).
Attiva la query.
In questo modo hai il controllo su cosa fallisce.
Se attivi tutto attivando la Query, nn hai garanzia che tutto sia al posto giusto.
Attivata la query, aggiungi i campi che ti interessano (attraverso "Aggiungi Campi" non "nuovo campo", il wizard lì ha una piccola defaiance).
Se provi ad attivare l'aggiunta dei campi prima di aver attivato la query, non trovi una cippa lippa da selezionare.
Se aggiungi campi alla tabella (attraverso DML o SqLiteAdmin) devi disattivare e riattivare la query. Altrimenti non è in grado di capire che è stata modificata la tabella (lo dico prima che ti capiti e chiedi lumi ;) )

Dimentica i "database" a file system.
Fai finta di non sapere nulla. I DBMS (SqLite li scimmiotta in tutto e per tutto) non hanno il concetto tabella=file. hanno un unico file per tutto. Usano altri file temporanei, ma quelli sono affari loro su come li usano.
SqLite usa un mecchanismo "jurnaled" per non perdersi i pezzi per strada.
Ma qui siamo un attimo più avanti rispetto alle tue esigenze ;)
Buon smanettamento.
Stilgar
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 17, 2013, 09:56:21 pm
AHAH ora sì sei stato fantastico !
Non solo funziona tutto alla perfezione ,ma ho capito come comportarmi d'ora in avanti per scoprire cosa non va !!!

GRAZIEEEEE Mille Stilgar!!!

ciao
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 17, 2013, 10:03:11 pm
Di nulla, è un'pascal-euro per la consulenza ;)
hihi
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 18, 2013, 09:31:09 am
mi rimane SOLO da capire se il mondo è diviso tra chi capisce il BINARIO e chi no!!!!
perchè è diviso tra 10 e non tra 2 ???      gli altri otto ? che fanno ?

ahahahahah
Titolo: Re:usare tabella di sqlite3
Inserito da: Stilgar - Gennaio 18, 2013, 09:38:31 am
Ecco tu fai parte di quelli che non capisce il binario ;)
Titolo: Re:usare tabella di sqlite3
Inserito da: nomorelogic - Gennaio 18, 2013, 10:17:22 am
Ecco tu fai parte di quelli che non capisce il binario ;)

:D
Titolo: Re:usare tabella di sqlite3
Inserito da: gianpa - Gennaio 18, 2013, 02:58:08 pm
ahahah ora l'ho capita !!! 1-0 !

ciaoOOOOOOOOOOO