Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Delphi6] mi inserisce il valore nella riga dopo

    Ciao a tutti,
    stavo facendo l'inserimento dei voti per lo studente, utilizzando la DBGrid riesco ad ottenere il valore, ma quando faccio un beforePost per inserire i valori di collegmento con altre tabelle, mi crea un'altra riga... quindi ne ho due!!!! come faccio a mettere tutto su una riga?
    Ecco qua il codice per l'inserimento dei valori nel database:
    codice:
    procedure TForm1.Q1BeforePost(DataSet: TDataSet); 
    begin   
    if Q1.State IN [dsInsert] then    
    begin    
    ADOCommand1.CommandText:=('INSERT INTO registro'+                             
    '(IdStuFk, IdMatFk, IdDocFk) '+                             
    'VALUES ('+NumIdAlunno+','+numId_Materie+','+numIdDoc+')');    
    ADOCommand1.Execute;   
    end; 
    end;
    come posso fare????

  2. #2
    Per favore aiutatemi!!!!!!!!!!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,485
    Originariamente inviato da DvdDelphi
    Per favore aiutatemi!!!!!!!!!!!!
    Se vuoi aiuto, devi anche leggere le risposte che ti vengono date (visto che qui ti viene spiegato esattamente il perché), e anche di leggere la documentazione, e metterti in testa che senza conoscere la modalità di funzionamento di un controllo utilizzandolo in modo improvvisato non puoi stupirti dei risultati diversi da quelli che ti aspetti (che hai stabilito tu, ma che sono diversi da quelli del componente).

    Il controllo DBGrid, come già è stato detto più volte, opera su un DataSet e compie direttamente le operazioni di Insert, Update e Delete, pertanto se usi quel controllo non hai bisogno di codificare queste procedure.

    Se fai tutto con codice scritto da te, allora il controllo DBGrid non ti serve a niente.

    E' come comprare un trapano e forare buchi facendolo ruotare con le mani.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    ma purtroppo i valori che devo inserire non posso visualizzarli sulla dbgrid.... è per questo che voglio mettere i valori attraverso un commandButton!!!!

    Allora potresti dirmi come fare?
    perchè se faccio come dici tu, dovrei visualizzare i miei valori sul dbgrid!

  5. #5
    Usare un TAdoTable???? devo aggiornare il mio database..... non so cme si fa ad utilizzare, siccome ho utilizzato sempre l'adocommand e non mi ha dato problemi fino adesso!!!!!

  6. #6
    Premessa: Mi piacerebbe vedere il tuo progetto.

    Per nascondere le colonne di una DBGrid basta fare un visible a false della colonna incriminata, qualcosa del tipo:
    DBGrid1.Columns[0].Visible := False;
    dove 0 è il numero della colonna, in questo modo gestisci tutto e per inserire il valore delle colonne nascoste usi i metodi classici del dataset nell'evento beforepost

  7. #7
    Vi amo tutti!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    grazie !!!!!!


  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,485
    Originariamente inviato da DvdDelphi
    ma purtroppo i valori che devo inserire non posso visualizzarli sulla dbgrid....
    Nella DBGrid puoi mostrare le colonne che preferisci. Se un campo non deve essere inserito dall'utente, basta non mettere la colonna nella griglia, o impostarla a "sola lettura"; è chiaro che poi quel campo - se è obbligatorio - da qualche parte dovrà essere compilato: ci sono eventi apposta dove farlo (OnBeforePost, OnNewRecord, ...), lasciando che l'utente inserisca gli altri valori non determinati in automatico.

    Il punto è che nel momento in cui si invoca il Post dalla griglia, o da un DBNavigator, o da qualsiasi altra parte, il DataSet spedisce automaticamente i dati che devono essere salvati, e non occorre fare anche la INSERT manuale, altrimenti il record è doppio.

    L'unica cosa da fare è valorizzare i campi non visibili in griglia e lasciare all'utente l'inserimento di quelli che vede. Punto.

    Originariamente inviato da DvdDelphi
    perchè se faccio come dici tu, dovrei visualizzare i miei valori sul dbgrid!
    No, non hai capito come funziona il DBGrid, né il DataSet, né come interagiscono questi controlli tra di loro. Prendi un libro e basta.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.