Salve come faccio a farmi tornare la riga selezionata da un dbgrid? ringraziamenti anticipati 1750
Salve come faccio a farmi tornare la riga selezionata da un dbgrid? ringraziamenti anticipati 1750
Un salustro a tutti
Il controllo DBGrid è associato ad un DataSource: questo significa che la selezione di una riga sulla griglia corrisponde al posizionamento sul record corrispondente nel DataSet (tabella, query o altro) associato tramite il componente DataSource.
Pertanto, per sapere dove sei posizionato, ti basta osservare il record corrente del DataSet e ispezionarne i valori dei campi senza bisogno di identificare la riga selezionata direttamente sulla griglia.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Prima di tutto ti ringrazio per la tua conculenza e dopo di che avrei da chiederti dei chiarimenti sulla seguente frase:
***********************************
"ti basta osservare il record corrente del DataSet e ispezionarne i valori dei campi senza bisogno di identificare la riga selezionata direttamente sulla griglia."
***********************************
in che senso osservare il record?.
Perdona l'ignoranza ma in Delphi sono un pivello![]()
Grazie ancora 1750
![]()
Un salustro a tutti
Il controllo DBGrid rispecchia esattamente la condizione del DataSet (tabella, query o altro componente) a cui è collegato attraverso un componente DataSource.
Il DataSet permette di spostarsi all'interno dei record oppure di posizionarsi su un record specifico richiamando alcuni metodi di cui è dotato il componente stesso, ad esempio
;codice:Table1.First
si posiziona sul primo record della tabella.
si posiziona sul record successivo a quello corrente.codice:Table1.Next
Questi metodi sono gli stessi che vengono richiamati dalla DBGrid quando l'utente fa clic per posizionarsi su una riga ben precisa che poi corrisponde ad un preciso record della tabella a cui fa riferimento.
Pertanto, per conoscere il valore di un campo per il record correntemente selezionato, non è necessario ispezionare le celle della griglia, ma sapendo che la griglia è collegata ad una tabella e che quella tabella si posiziona sul record indicato sulla griglia automaticamente, basta leggere il valore del campo per il record corrente direttamente dalla tabella; ad esempio
restituisce il contenuto del campo COGNOME della tabella relativamente al record selezionato richiamando i metodi del componente stesso oppure facendo clic sulla DBGrid (o su un altro DataControl associato, come il DBNavigator).codice:Table1.FieldByName('COGNOME').AsString
E' più chiaro?
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Grazie mille alka, ora è molto piu chiaro.
A bun rendere cioxxx
Un salustro a tutti
Ciao alka, grazie a te sono riuscito a tirarmi fuori la stringa selezionata, solo che ora ho un'altro problemae magari mi chiedevo se avevi la soluzione anche a questo problema:
*****************
procedure TForm2.caricaTabella(newKeySql:string);
var sqlS:=string;
begin
sqlS:='SELECT * FROM SECTAB WHERE MATRICOLA ='+''''+newKeySql+'''';
Query1.SQL.Add(sqlS);
end;
*****************
PERCHE' SU QUESTO CODICE IN RUNTIME MI BECCO L'ERRORE CHE TI HO ALLEGATO?.
Ringraziamenti anticipati 1750
Un salustro a tutti
Controlla il numero di apici che hai utilizzato...
I valori letterali di tipo stringa (testi) nello statement SQL vanno racchiusi tra apici singoli (un solo apice singolo all'inizio e alla fine).
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Hai perpettamente raggione, il mio problema è che non riesco a concatenare la stringa, mi spiego con un'esmpio:
Se ho una variabile di questo tipo
var valore:string;
e la setto in questo modo dando sue apici all'inizio e alla fine
valore:='SELECT * FROM TABELLA WHERE CAMPO='
a questo punto come faccio per concatenare gli apici all'interno della stringa in modo che il valore della where condicion risulti tra apici?
valore:='SELECT * FROM TABELLA WHERE CAMPO='+ variabile.
Grazie ancora![]()
![]()
Un salustro a tutti
Per rappresentare un'apice all'interno di una stringa puoi digitare due apici consecutivi:
Ciao!codice:Text := 'Questa stringa contiene ''apici''';![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...