Newsgroup: it.comp.lang.visual-basic
Titolo: DBGrid

 Ho riscontrato un comportamento della dbgrid, forse noto ai più, ma per
me strano.
Dopo aver impostato DBgrid1.Visible=false se cerco di ciclare sulle
righe, mi dice "numero di riga no valido" appena arriva alla prima riga
non visibile per le dimensioni che avrebbe sulla form. E già questo mi
pare strano, infatti mai successo con la Flex.
Altra stranezza: allora penso di aggirare l'ostacolo così:
imposto l'altezza della grid al valore che dovrebbe avere per
visualizzare tutte le rgihe, faccio il mio ciclo e poi rimetto l'altezza
originaria.
Però se l'altezza arriva oltre 32.600 circa twips mi da errore di
overflow!
Posso ciclare max su 142 righe, poi scatta l'errore.
Come bisogna fare se la grid ha 150 righe?
Grazie
ciao
--
Greg

 per me strano.
Ho ravanato il ng degli anni passati e non ho trovato traccia di questo
problema, quindi scrivo qui la soluzione che ho adattato, si sa mai che
qualcun altro vada a cercare, anche se credo che con le nuove grid del
vb6 nessuno usa piů la vecchia DBGrid.
Dunque, posto che si puň ciclare solo sulle righe visibili, e che non si
puň impostare al volo un'altezza maggiore di 32000 twips, che
corrisponde a circa 142 righe...
l'unico sistema che ho trovato č quello di inserire all'interno del
ciclo un secondo ciclo che mi conta se sono arrivato all'ultima riga
visibile, a quel punto chiamo il metodo Scroll, azzero il contatore
interno e proseguo.
ciao
--
Greg

 interno e proseguo.
quello che non capisco č l'uso della dbgrid.
io la uso sempre e solo agganciata a un datacontrol, e non mi ha mai creato
un problema nemmeno con 4 milioni di record., a differenza della griglia
ado, che qualche buchino ce l'ha anche dopo 6 sp.
le operazioni pero' le faccio sul recordset che associo al dc.
la dbg la uso solo per visualizzare e scorrere visivamente il rs.
ciao, a.

 creato un problema nemmeno con 4 milioni di record.
forse perchè non ci hai mai ciclato dentro?
prova ad agganciare una dbgrid a un datacontrol con + di 200 records e
poi
dbgrid1.col =2
for x= 1 to 200
    dbgrid1.row=x
next
vedi cosa succede. Se non scrolli la griglia non cicli!
ciao
--
Greg

 vedi cosa succede. Se non scrolli la griglia non cicli!
avevo capito :)
il punto è che non ho mai sentito la necessita' di ciclare con la dbg.
quella la penso proprio bound, abbastanza secca. in quel modo e'
estremamente utile.
per tutto il resto c'e' la flex.
ciao, a.

 estremamente utile.
Ok, capito pure io :)
Anche io la uso come te e fino ad ieri non avevo mai avuto necessità di
ciclare.
La necessità è sorta perchè devo nascondere una colonna, se per caso una
sua cella ha un valore x.
Mi dirai che la cosa piu semplice è ciclare il recorset, certo ma non
conoscendo in anticipo i nomi dei campi (il numero e nomi dei campi non
rimangono fissi e costanti) ho pensato fosse piu semplice agire sulla
grid.
E visto che siamo in argomento ti dico pure che scoperto un'altra
differenza rispetto alla flex, che è la grid che io uso di più: non si
può impostare la larghezza della colonna a zero (minimo 44 twips) e
quindi bisogna ricorrere a visible=false; non è che cambi molto, ma la
prima volta che ho osservato la cosa sono rimasto alquanto incredulo.
--
Greg