Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Stilgar - Dicembre 17, 2012, 12:38:32 am

Titolo: TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 17, 2012, 12:38:32 am
Ciao a tutti.
E' più di un'ora che cerco di uscirne.
Sarà che l'ora è tarda e la mente offuscata, ma porca paletta... ci sto diventando matto.
Premesso Lazzarone 1.0.2 + Zeus 7.0 + SqLite3. (Che tra poco divente scolite ...)
La form ha 3 componenti di editing/visualizzazione.

Tabella target
Codice: [Seleziona]
(
id INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
codice VARCHAR(10)  NULL,
descrizione TEXT
);

Sulla form ho 3 componenti.
Una DBList che mi serve per puntare rapidamente al codice che può interessare all'utente. (una sorta di sinossi della tabella).
Un DBMemo per ... la descrizione del record puntato.
Un DBEdit per operare le modifiche al codice.
Un DBNavigator, tanto per avere le funzioni di navigazione/modifica al volo.

Comportamento a tabella vuota.
DBList vuoto, DBMemo vuoto, DBEdit vuoto.
Perfetto.
Inserisco il primo codice ...
DBList vuoto, DBMemo vuoto, DBEdit popolato con il nuovo codice.

Allora sono io lo stordito che mi aspetto la DBList popolata contestualmente al POST, o c'è qualche madonna che mi sono perso?
(PS: Ho collegato i componenti allo stesso DataSource ... prima che me lo suggeriate ;) )

Grassssie

Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: nomorelogic - Dicembre 17, 2012, 09:32:11 am
non penso che sei stordito :D, le DbList dovrebbero mostrare sempre il contenuto aggiornato del dataset.

Visto che hai detto che dopo il "post" la lista non contiene il nuovo record immagino che non la popoli con una istruzione sql tipo "UPDATE" (nel qual caso avresti bisogno di un refresh).

Se sei sicuro che la transazione è a posto forse dovresti controllare come è gestito il campo AUTOINCREMENT. Con questi campi di solito è il DBMS ad avere l'ultima parola sul valore e, al momento del post (lato client quindi), non c'è modo di sapere quale sarà il valore se non chiedendolo al server.

Secondo me se non metti AUTOINCREMENT e fornisci tu il valore lato client molto probabilmente il tutto funzionerà come ci si aspetta.
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 17, 2012, 01:25:29 pm
mmm
Il componente di back-end che sto usando è un TZTable.
Quindi la gestione edit/post insert/port viene via gratis.

Le DBGrid non hanno problemi ..
PS:
Cambiato il CLOB in VARCHAR .... e inizio a vedere i valori ...
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: nomorelogic - Dicembre 17, 2012, 03:40:37 pm
nel primo post il campo "codice" era già VARCHAR, sicuro che dipenda dal tipo?

forse non ho capito bene io, ma la DbList ha 2 datasource: quello della tabella e quello della lista.
il refresh del dataset della lista viene fatto dopo il post?
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: xinyiman - Dicembre 17, 2012, 03:58:14 pm
Per curiosità hai provato a chiudere la connessione e a riaprirla per vedere se vedi i dati?!
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 17, 2012, 04:18:01 pm
xinyimanlo screen shot l'ho fatto dopo aver inserito "dati ad cazzum"... per vedere se scattava qualche exception... ;)
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 17, 2012, 04:45:01 pm
nomorelogic sei sempre fonte d'ispirazione.
Allora il componente è proprio TDBListBox...
Ho provato ad usare TDBLookupListBox ... funziona ...
La TDBListBox ... bisogna popolarla a manina ...
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: nomorelogic - Dicembre 18, 2012, 09:05:45 am
ho visto nell'immagine che c'è la parola "banca"
forse è per quello che non andava :D
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 18, 2012, 10:17:37 am
Ok ... allora metterò Monti ... :D
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: nomorelogic - Dicembre 18, 2012, 11:11:07 am
e che cambia?!  :'(
Titolo: Re:TDBList + TDBMemo ... comportamento ... bislacco.
Inserito da: Stilgar - Dicembre 18, 2012, 11:16:02 am
Che ad un compilatore sprovveduto scappa l'inghippo :D