* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 25, 2024, 08:32:09 pm

Inserisci il nome utente, la password e la durata della sessione.

55 Visitatori, 0 Utenti

Autore Topic: come aggiornare il valore di una tabella con i tdbedit  (Letto 5213 volte)

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
come aggiornare il valore di una tabella con i tdbedit
« il: Febbraio 01, 2012, 06:14:04 pm »
Ciao,
il programma che sto facendo e' quasi terminato, quindi non disperate.... tra un po mollo!!! ;D

Ho inserito in una form dei campi tdbedit collegati ad un datasource
Su questi campi sono stati inseriti alcuni valori che vorrei aggiornare sulla tabella del datasource alla pressione di un tbutton (quindi a righe di codice per intenderci), solo che non riesco a leggere il valore modificato.
l'istruzione che eseguo e' questa:

Codice: [Seleziona]
  S := 'UPDATE PARAMETRI SET PERCORSO = '''+ DBPERCORSO.FIELD.ASSTRING '''';    SQLTransaction1.commit;
  SQLQUERY1.SQL.Text := S;
  SQLQUERY1.Execsql;
  SQLQUERY1.sql.clear;

  SQLTransaction1.commit;
  // SQLQUERY1.OPEN;
  SQLQUERY1.SQL.Text := 'SELECT * FROM PARAMETRI';
  SQLQUERY1.OPEN;               

pero' se lancio nuovamente il programma mi ritrovo i valori che avevo impostato la volta precedente, come se l'aggiornamento non fosse avvenuto

Praticamente se controllo la variabile S con il debug mi accorgo che il valore di dbpercorso e' rimasto quello di prima anche se in realta' io lo avevo cambiato subito prima di fare click sul bottone (legge il datasource e non il valore che ho scritto a video sul campo)

Qualche suggerimento?
« Ultima modifica: Febbraio 01, 2012, 06:25:28 pm da tiberi72 »

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3278
  • Karma: +12/-0
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #1 il: Febbraio 01, 2012, 07:10:40 pm »
Si, che database usi?! e quale oggetto di connessione?!
Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #2 il: Febbraio 02, 2012, 08:53:46 am »
Firebird 2.5

codice preso dall unit.lfm
Codice: [Seleziona]
object IBConnection1: TIBConnection
    Connected = True
    LoginPrompt = False
    DatabaseName = 'D:\DB.FDB'
    KeepConnection = False
    Password = 'masterkey'
    Transaction = SQLTransaction1
    UserName = 'SYSDBA'
    HostName = 'localhost'
    LogEvents = []
    left = 144
    top = 136
  end
  object SQLTransaction1: TSQLTransaction
    Active = True
    Action = caNone
    Database = IBConnection1
    left = 176
    top = 136
  end
  object SQLQuery1: TSQLQuery
    IndexName = 'DEFAULT_ORDER'
    FieldDefs = <   
      item
        Name = 'PERCORSO'
        DataType = ftString
        Precision = -1
        Size = 255
      end   
   Active = True
    Database = IBConnection1
    Transaction = SQLTransaction1
    SQL.Strings = (
      'select *'
      'from PARAMETRI'
    )
    Params = <>
    left = 208
    top = 136
  end
  object Datasource1: TDatasource
    DataSet = SQLQuery1
    left = 240
    top = 136
  end

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3278
  • Karma: +12/-0
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #3 il: Febbraio 02, 2012, 09:04:32 am »
Quindi se non ho capito male il programma funziona, solo che quando lo chiudi e lo riapri sembra che non abbia preso le modifiche fatte. Prova ad eseguire

Transaction.Commit;

dopo l'aggiornamento

Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #4 il: Febbraio 02, 2012, 09:14:05 am »
La cosa strana e' che anche la variabile che compone la stringa per l'update, in fase di debug, non contiene il valore modificato ma bensi' il valore originale.
Non e' che uso un modo sbagliato per leggere il campo tdbedit?
Io ho usato
DBPERCORSO.FIELD.ASSTRING

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #5 il: Febbraio 02, 2012, 09:18:54 am »
penso di aver trovato qualcosa di utile,
la variabile va letta come DBPERCORSO.Text
nel caso avessi anche una variabile float come posso leggerla?

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #6 il: Febbraio 02, 2012, 09:23:51 am »
Forse ci sono arrivato:
la variabile DBPERCORSO.Text riesco a leggerla in questo modo perche' in precedenza avevo caricato il valore sulla variabile con DBPERCORSO.Text:='valore';

Nella form ci sono invece altre variabili di tipo float che vengono aggiornate direttamente dal datasource e che quindi vengono variate digitando sulla form e lette con dbvar.field.asfloat

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3278
  • Karma: +12/-0
Re:come aggiornare il valore di una tabella con i tdbedit
« Risposta #7 il: Febbraio 02, 2012, 09:31:06 am »
Se hai risolto bene, altrimenti ti conviene passarci il sorgente e noi lo verifichiamo!
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19197
  • Topic in totale: 2289
  • Online Today: 68
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 55
Total: 55

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.