Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    6

    Programmino

    Vi prego aiutatemi. Premetto che questo che sto facendo è il mio primo programma e NON CI RIESCO!!!!
    Allora dovrei creare una maschera che mi faccia inserire dei dati che devo essere mandati in un database. Sto usando delphi e per il db firebird...mi potreste dare qualche suggerimento?
    SMUSKAS

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Programmino

    Originariamente inviato da smuskas
    Vi prego aiutatemi. Premetto che questo che sto facendo è il mio primo programma e NON CI RIESCO!!!!
    Allora dovrei creare una maschera che mi faccia inserire dei dati che devo essere mandati in un database. Sto usando delphi e per il db firebird...mi potreste dare qualche suggerimento?
    Che problemi incontri?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    6
    Faccio prima a dirti cosa ho capito: devo creare un ciclo che mi faccia inserire i dati per tutti i campi creati e che poi vada in un riga nuova, giusto per capirsi. Bè non riesco a fare neanche uqesto, e poi come faccio a mandare i dati al db? Se mi facessi un piccolo esempio per me sarebbe molto più semplice capire....grazie in anticipo
    SMUSKAS

  4. #4
    Originariamente inviato da smuskas
    Faccio prima a dirti cosa ho capito: devo creare un ciclo che mi faccia inserire i dati per tutti i campi creati e che poi vada in un riga nuova, giusto per capirsi. Bè non riesco a fare neanche uqesto, e poi come faccio a mandare i dati al db? Se mi facessi un piccolo esempio per me sarebbe molto più semplice capire....grazie in anticipo
    Ma perchè "devi"? Per scuola? Da dove lo stai studiando Delphi? E' un pò difficile spiegare in un forum i fondamenti ed i concetti principali di un linguaggio di programmazione, per cui il consiglio è quello di chiedere al docente - se si tratta di studio scolastico - oppure di consultare un libro o valide risorse presenti in rete.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    6
    Era proprio quello che pensavo...mi sa che mi conviene prendermi un manuale. Grazie lo stesso!
    SMUSKAS

  6. #6
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Bhè adesso...

    Allora esistono 3 grandi possibilità

    1) storica ultravecchia
    2) storica
    3) "moderna"

    Storicamente esistevano due componenti principali: le ttable (tabelle) e le tquery (query).
    Le differenze (in supersintesi) era che le tabelle si collegavano a tabelle "alla dbf" (o meglio alla paradox), quindi tipicamente una ttable aveva tutte le righe fisiche dalla tabella sottostante.
    Si operavano con filtri sulle proprietà FILTER e FILTERED, ma sempre la tabella "tira su" tutte le righe.
    Questo va bene se la tabella è piccola (qualche decina di migliaia di righe), non tanto bene se è grande (milioni)

    la tquery invece conteneva una pre-selezione (tipo select * from tabella where codice=1), e quindi "tirava su" meno righe (anche solo 1).

    Poi entrambi potevano (possono) essere castate (in realtà sono discendenti da) TDATASET, che è la classe che contiene i metodi che ti interessa.

    Oggi quando ci si collega a database, firebird, mysql, oracle o quello che vuoi, tipicamente si utilizzano componenti di libreria che "mimano" il funzionamento delle vecchie ttable e tquery

    Tornando alla domanda tipicamente si fa così
    - avrai un componente tconnessione o qualcosa del genere al motore SQL, dove ci metti nome utente e password, IP etc
    - avrai un componente "tabella avanzata" o più spesso "query avanzata" collegata alla tconnessione precedente
    - avrai componenti tdatasource collegati ai precedenti
    - avrai componenti visuali (griglie, editbox, etc) collegati ai tdatasource

    Bene per scrivere i dati ci sono due approcci:
    - ultrabrutale (INSERT sql)
    - storico

    Quello "ultrabrutale" consiste nel preparare una stringa di testo che contiene proprio il comando SQL (insert into tabella blablabla).
    Poi la passi (o meglio la setti) come come comando SQL del componente tquery"avanzato", e poi la fai eseguire (active, open, exec, dipende dati tipi)

    Quello "storico" invece - che direi è simile a quello che vuoi fare - comprende qualcosa tipo
    [code]
    var querynuova:...
    miodataset:tdataset;
    (...)
    XSQL(querynuova,'select * from tabella where ser=0'); // qui dipende da cosa utilizzi per eseguire la query; per aggiungere le righe, tipicamente, si fa una where inesistente, così ti ritorna un dataset vuoto. attenzione che vuoto NON è inattivo!

    miodataset:=tdataset(querynuova); // questo cast esplicito è brutto, ma è comodissimo perchè quando cambierai la tquerynuova ti basterà cambiare UNA riga per farla funzionare magicamente

    with miodataset do
    begin
    Append;
    fieldbyname('cognome').asstring:='pippo';
    fieldbyname('nome').asstring:='pluto';
    fieldbyname('eta').asinterger:=3;
    post;
    end;


    se invece vuoi leggere farai qualcoas tipo
    XSQL(querynuova,'select * from tabella blablabla');
    miodataset:=tdataset(querynuova);
    with miodataset do
    begin
    first;
    while not eof do
    begin
    showmessage(fieldbyname('cognome').asstring);
    next;
    end;

    end;
    [/quote]

  7. #7
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Bhè adesso...

    Allora esistono 3 grandi possibilità

    1) storica ultravecchia
    2) storica
    3) "moderna"

    Storicamente esistevano due componenti principali: le ttable (tabelle) e le tquery (query).
    Le differenze (in supersintesi) era che le tabelle si collegavano a tabelle "alla dbf" (o meglio alla paradox), quindi tipicamente una ttable aveva tutte le righe fisiche dalla tabella sottostante.
    Si operavano con filtri sulle proprietà FILTER e FILTERED, ma sempre la tabella "tira su" tutte le righe.
    Questo va bene se la tabella è piccola (qualche decina di migliaia di righe), non tanto bene se è grande (milioni)

    la tquery invece conteneva una pre-selezione (tipo select * from tabella where codice=1), e quindi "tirava su" meno righe (anche solo 1).

    Poi entrambi potevano (possono) essere castate (in realtà sono discendenti da) TDATASET, che è la classe che contiene i metodi che ti interessa.

    Oggi quando ci si collega a database, firebird, mysql, oracle o quello che vuoi, tipicamente si utilizzano componenti di libreria che "mimano" il funzionamento delle vecchie ttable e tquery

    Tornando alla domanda tipicamente si fa così
    - avrai un componente tconnessione o qualcosa del genere al motore SQL, dove ci metti nome utente e password, IP etc
    - avrai un componente "tabella avanzata" o più spesso "query avanzata" collegata alla tconnessione precedente
    - avrai componenti tdatasource collegati ai precedenti
    - avrai componenti visuali (griglie, editbox, etc) collegati ai tdatasource

    Bene per scrivere i dati ci sono due approcci:
    - ultrabrutale (INSERT sql)
    - storico

    Quello "ultrabrutale" consiste nel preparare una stringa di testo che contiene proprio il comando SQL (insert blablabla).
    Poi la passi (o meglio la setti) come come comando SQL del componente tquery"avanzato", e poi la fai eseguire (active, open, exec, dipende dati tipi)

    Quello "storico" invece - che direi è simile a quello che vuoi fare - comprende qualcosa tipo
    codice:
    var querynuova:...
      miodataset:tdataset;
    (...)
     XSQL(querynuova,'select blablabla from tabella where ser=0'); // qui dipende da cosa utilizzi per eseguire la query; per aggiungere le righe, tipicamente, si fa una where inesistente, così ti ritorna un dataset vuoto. attenzione che vuoto NON è inattivo!
    
     miodataset:=tdataset(querynuova); // questo cast esplicito è brutto, ma è comodissimo perchè quando cambierai la tquerynuova ti basterà cambiare UNA riga per farla funzionare magicamente
    
    with miodataset do
    begin
      Append;
      fieldbyname('cognome').asstring:='pippo';
      fieldbyname('nome').asstring:='pluto';
      fieldbyname('eta').asinterger:=3;
      post;
    end;
    
    
    se invece vuoi leggere farai qualcoas tipo
    XSQL(querynuova,'select * from tabella blablabla');
     miodataset:=tdataset(querynuova); 
    with miodataset do
    begin
     first;
    while not eof do
    begin
       showmessage(fieldbyname('cognome').asstring);
       next;
    end;
    
    end;

  8. #8
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Se invece vuoi qualcosa di più semplice, puoi adottare uno dei discendenti di TTABLE.
    In questo caso, visualmente, è più facile aggiungere e modificare i dati, perchè non devi preoccuparti di, preliminarmente, fare la relativa SELECT (che viene fatta lo stesso, ma dal componente dietro le quinte)

    Per un approccio 100% visuale, ovvero senza codice dietro le quinte tuo, metterai
    - una tconnessionequalcosa pippo
    - una ttabella pluto con connessione a pippo
    - un tdatasource paperino con dataset pluto
    - un componente dbnavigator minni con tdatasource paperino
    - un componente chesso tdbedit paperone con tdatasource paperino

    a questo punto potrai operare direttamente

    tutto chiaro?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    6
    GRAZIE MILLE!!! Ora provo subito!!!Comunque ho le idee molto più chiare!!!
    SMUSKAS

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.