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

    [Delphi] DBExpress

    Ciao a tutti sono nuovo ed ho bisogno di un aiuto.

    Sto creando una piccola applicazione utilizzando delphi 7 e firebird. Per la connessione, query eccetera utilizzo i componenti DBExpress. Dopo aver letto un po di documentazione e fatto delle prove, sono riusciuto a collegarmi al database e visualizzare le tabelle tramite gli opportuni componenti grafici.

    Ora quello che devo fare è inserire un nuovo record in una tabella, e non ci riesco! Mi scuso se magari l'argomento è banale. Immagino che debba fare una "commit", difatti all'esecuzione Delphi non invia degli errori, ma il database non viene modificato.

    Vi invio il codice:

    TD.TransactionID := 1;
    TD.IsolationLevel := xilREADCOMMITTED;
    SQLConnection1.StartTransaction(TD);

    SimpleDataSet1.Open;
    SimpleDataSet1.Insert;
    SimpleDataSet1.FieldByName('id').AsInteger:=1;
    SimpleDataSet1.FieldByName('nome').AsString:='pipp o';
    SimpleDataSet1.Close;

    SQLConnection1.Commit(TD);

    Il SimpleDataSet1 ha la propietà

    SimpleDataSet1.Dataset.CommandType=crTable

    ho visto che esiste anche un componente SQLTable, la differenza consiste solamente nella unidirezionalità? Cosa mi consigliate di usare se mi serve solamente per inserire o cancellare dei Record? Scusate ma ho un po di confusione.

    Grazie della risposta


  2. #2
    Se usi i comandi di tipo Table dopo l'insert e la valorazzazione dei campi dovresti mettere:
    Codice PHP:
    SimpleDataSet1.Post
    ...

  3. #3

    Grazie

    Ti ringrazio... quando faccio partire l'applicazione il DBGrid mi visualizza il nuovo record inserito . Ma non viene effettuata nessuna modifica al database, quando esco il record non è presente . Sbaglio qualcosa nel commit?

    Grazie se riuscite ad aiutarmi.



  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Il componente TSimpleDataSet è un derivato dal componente TClientDataSet: si tratta di un componente in grado di creare un DataSet in memoria per lavorare in modalità disconnessa (modello "briefcase").

    Questo significa che tutte le modifiche alla base dati sono applicate alla tabella in memoria, ma è necessario invocare il metodo ApplyUpdates per salvare i dati nel database sottostante.

    Io suggerisco di usare il componente TSQLDataSet in congiunzione con TClientDataSet e TDataSetProvider.

    La Guida in linea riporta informazioni dettagliate a riguardo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5

    Grazie

    Ti ringrazio sei stato molto gentile .

    Ora funziona, pensa... mi mancava il metodo !

    C'è molta differenza tra l'utilizzare i tre oggetti suggeriti da te collegati tra loro piuttosto che il SimpleDataSet?

    Ti ringrazio di nuovo


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 © 2024 vBulletin Solutions, Inc. All rights reserved.