Newsgroup: it.comp.lang.delphi
Titolo: DBGrid

Ciao a tutti,
2 domande:
1- come faccio ad effetuare una ricerca su una tabella su un campo che 
non è quello chiave?
Con la LOCATE funziona, ma trova solo il primo... invece io avrei 
bisogno di creare il primo e se ripremo il pulsante, subito quello 
successivo...
2- nella mia finestra uso il componente TDBGrig dove visualizzo i 
record associato ai singoli campi TDBEdit che uso per 
aggiungere/modificare i record...il tutto collegato ad una DBNavigator. 
Quando premo sul più, nella DBGrid mi crea una riga vuota che và a 
riempire solo dopo aver riempito i vari campi e il post... la riga 
vuota me la crea subito dopo il record che è selezionato in quel 
momento.
Come faccio ad ovviare a questo? Vorrei infatti evitare di far vedere 
quella riga vuota quando aggiungo un record...
Grazie
tombat
-- 
Questa è una firma automatica di MesNews.
Sito: 
http://mesnews.no-ip.com



 quella riga vuota quando aggiungo un record...
Se aggiungi un record nella griglia (cosa che io odio fare) , è ovvio che ti
crea una riga vuota, altrimenti dove scrivi i dati ?
Oppure non ho capito un tubo ...  :-)
Giulio

quella riga vuota quando aggiungo un record...
L'unico modo che hai e' quello di usare una dataset diverso per la griglia, ad
esempio una query della quale scatenerai la potenza non appena farai il post
del dataset reale, collegato ai dbedit.
Ciao
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Quale db ?
SqlServer passando per il DBE
Se aggiungi un record nella griglia (cosa che io odio fare) , è ovvio 
che ti
crea una riga vuota, altrimenti dove scrivi i dati ?
Oppure non ho capito un tubo ...
Si chiaro, solo che la DBGrid la uso solo in visualizzazione, non per 
inserire direttamente le righe, per quello uso dei TDBEdit sopra alla 
griglia...


 Ovviamente l'azione che sostituira' la locate e' la .Next del dataset.
No, non devo andare al record successivo, ma al sucessivo record che 
soddisfa la ricerca... con la Locate invece và solo al primo record 
trovato, ma come faccio ad andare al successivo (che non è 
necessariamente quello dopo il primo trovato)?
Quello che dovrei fare lo fà il comando FindKey e FindNearest... solo 
che fungono solo su campi "Chiave"....
Grazie


necessariamente quello dopo il primo trovato)?
Metti un tedit sopra la griglia, e associagli all'evento onchange questo:
dataset.Locate(camporicerca,Edit1.text,[loCaseInsensitive,loPartialKey]);
scrivi quello che vuoi cercare nel tedit, e vedrai cambiare i record in base
al tuo criterio di ricerca.


 al tuo criterio di ricerca.
Io questo già lo fatto... ma se ho più righe trovate? Così lui si 
posiziona solo sulla prima, e per andare a quella trovata succesiva?


 posiziona solo sulla prima, e per andare a quella trovata succesiva?
a questo link
http://www.scalabium.com/smcmpnts.htm
trovi un seti di componenti free, tra cui TSMDBFindDialog
che fa quello che chiedi, scaricalo e guardati il codice...
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Di sempre cio' che senti e fai cio' che pensi."
    G.G. Màrquez

prova a fare dbgrid.disable prima di inserire e poi dbgrid.enable dopo il
post
Per la ricerca io a volte ho fatto "a mano" , facendo un next e memorizzando
la posizione : con il pulsante altra ricerca ripartivo da quella posizione
"until eof"
Perņ la usavo per delle ricerche nelle righe di una fattura , quindi
nell'ordine del centinaio di record al massimo...
Giulio

 nell'ordine del centinaio di record al massimo...
Provo a fare anche questo...
Intanto grazie 1000
tombat


 post
La dbgrid non la il metodo Disabled... ha Enabled (True/False), ma se 
faccio così, la riga vuota me l'aggiunge lo stesso solo che la griglia 
è grigia...


 è grigia...
Ovviamente era enabled true/false (sono rinco ... :-(   )
A questo punto (come faccio io) , usi due sorgenti dati diverse , una per la
griglia (che in genere è una query con vari criteri e ordinamenti) e una per
l'inserimento , modifica, eliminazione,incasinamento vario dei dati.
Oppure , se non usi i dbcontrols per l'inserimento ma te lo fai a manina,
puoi fare prima dataset.disablecontrols , e poi dataset.enablecontrols al
post
Giulio