Italian community of Lazarus and Free Pascal
Programmazione => Databases => Topic aperto 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!
-
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?
-
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
-
La query l'hai testata con sqliteadmin?
-
cioè ?
come si fà ???
ciao
-
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
-
La tabella1 è vuota?
-
sì !!!
-
Se è vuota e non trova niente ... non mi sembra sbagliato... tu cosa ti aspettavi?
-
ma dice che non trova proprio la tabella !
proverò a metterci qualche dato e ti faccio sapere
ciao
-
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).
-
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
-
Hai provato a pulire i compilati?
-
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
-
ecco!!
grazie
e ciao
-
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
-
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)
-
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!!!
-
Lo guardo a casa.
In ufficio non posso esagerare ;)
-
Mamma mia l'avevi incasinato per benino ;)
Dai che ora apre la tabella anche a design.
-
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
-
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
-
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.
;)
-
Molto in gamba !
devo partire da quì per capire come ci si muove !
ciao
-
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
-
Metti i nomi corretti?
Controlla di nuovo
-
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
-
sqliteadmin è una cosa, quello che stai scrivendo tu un'altra ;)
Controlla quella, non sqliteadmin. :D
-
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
-
ricontrollato il nome della tabella nel componente?
-
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
-
Ma hai attivato tutti i componenti? (Connessione, Transazione, Query)
O solo la Query?
-
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
-
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
-
Metti solo il nome. Corretto.
Fai copia e incolla.
Mi raccomando, fai partire lazarus dalla cartella del progetto.
;)
-
Domanda: non è che hai il database aperto sia in Lazarus che con sqliteadmin? Nel caso, prova a chiudere sqliteadmin e a riprovare
-
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
-
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
-
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
-
Di nulla, è un'pascal-euro per la consulenza ;)
hihi
-
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
-
Ecco tu fai parte di quelli che non capisce il binario ;)
-
Ecco tu fai parte di quelli che non capisce il binario ;)
:D
-
ahahah ora l'ho capita !!! 1-0 !
ciaoOOOOOOOOOOO