Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [Delphi6] Passaggio variabili tra unit

    Ciao a tutti,
    codice:
    numIdDoc:=Form2.NumId_docente;
    codice:
    Q2.SQL.Add('SELECT classi.classe '+                  'from classi, docenti, connessione '+                  'WHERE connessione.IdDocFk ='+ numIdDoc +' AND '+                  'classi.IdclaPk=connessione.IdclaFk');
    questo è il codice che mi permette di ottenere l'ID del docente da un database creato con Access.
    Solamente che mi da errore "Errore di sintassi" visualizzandomi il codice SQL "WHERE connessione.IdDocFk =AND '+ 'classi.IdclaPk=connessione.IdclaFk"

    !!!!!!!!!!!!! non riesce a visualizzare il numIdDoc!!!!!! questa l'ho passata dalla unit2!
    Ho messo nelle opzioni che la Form2 è il main, quella principale.... però se clicco F7 per il debug mi parte la Form1!!!! quindi il valore che ha il numIdDoc è NULLO!!!!

    Come faccio a risolvere questi problemi?????????
    P.S. nella unit1 ho messo uses unit2 sotto l'interface, invece nella unit2 ho messo uses unit1 sotto l'implementation!!!!!

    URGENTISSIMOOOOOOO!!!
    grazie !!

    (devo consegnare il progetto di maturità)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    C'è troppa confusione nell'esposizione del problema, e soprattutto troppi problemi da affrontare alla volta.

    Andiamo per ordine.

    Di che tipo è la variabile numIdDoc?

    Verifica facendo debugging passo per passo e mettendo i dovuti breakpoint cosa avviene quando valorizzi quella variabile, perché è vuota e non inizializzata.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    La variabile NumIdDoc è di tipo string... e poi non riesco a fare il debugging per il seguente problema:http://forum.html.it/forum/showthrea...readid=1512002

  4. #4
    Togliendo la parte che mi da errore, cioè quella che ho postato, facendo il debug passo passo, nella form2(ossia quella di login) mi restituisce nella variabile NumIdDoc il valore dell'utente entrato, cioè il suo ID. Solamente che non riesco a comunicare con la Form1(la pagina di gestione) e passare il valore... perchè mi compila prima il codice nella unit1 e poi va nella unit2, accedi con nome utente e password, poi mi ritorna nel codice unit1 SENZA comnpilare la parte dell'evento TFormCreate!!!!

  5. #5
    ok ho capito dove mi crea questo errore!!!
    Mi compila prima di tutto la TForm1.FormCreate..... ma all'interno ci sono righe di codice che consentono di ricavare i dati dalla pagina del login(Form2)... quindi in questo caso sono nulle....
    Come faccio allora a dire di compilare per primo SOLO la unit2(pagina login)?????????? e poi successivamente la unit1????

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da DvdDelphi
    nella form2(ossia quella di login) mi restituisce nella variabile NumIdDoc il valore dell'utente entrato, cioè il suo ID.
    Quindi la variabile viene inizializzata correttamente, giusto?

    Originariamente inviato da DvdDelphi
    Solamente che non riesco a comunicare con la Form1(la pagina di gestione) e passare il valore...
    Posta il codice dove passi il valore.

    Originariamente inviato da DvdDelphi
    perchè mi compila prima il codice nella unit1 e poi va nella unit2
    Questa cosa che hai detto non ha alcun senso: quando il programma viene eseguito, il codice necessario viene compilato *tutto*.

    Originariamente inviato da DvdDelphi
    accedi con nome utente e password, poi mi ritorna nel codice unit1 SENZA comnpilare la parte dell'evento TFormCreate!!!!
    Anche questa cosa tecnicamente non ha senso. Il codice viene compilato tutto. Se una parte non viene compilata, significa che non viene utilizzata.

    Per risolvere i tuoi problemi, devi innanzitutto documentarti meglio sul linguaggio e sull'ambiente che stai utilizzando.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da DvdDelphi
    e poi non riesco a fare il debugging per il seguente problema
    E io cosa posso farci? Se devi fare il debugging, impara a fare il debugging.

    La discussione comincia a essere surreale: prima di iniziare a realizzare qualcosa con un prodotto, tool o linguaggio di programmazione che sia, devi conoscerne i principi fondamentali di funzionamento.

    Dai problemi che hai posto non si capisce cosa desideri ottenere, parli di problemi senza mostrare il codice completo, utilizzi tipi errati per le variabili, dimostri di avere le idee confuse in merito al processo di compilazione e non hai la possibilità di fare debugging.

    Non è possibile darti suggerimenti che possano essere efficacemente compresi.

    Leggi anche il Regolamento di questo forum, in particolare la prima regola.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Partendo dal presupposto che è da tre anni che sto utilizzando questo linguaggio di programmazione, mi sembra anche a me surreale!!!!!!!!!!!
    comunque eccco qua il codice dove ottiene il valore del IdNumDoc:
    codice:
    AQAccesso.SQL.Add ('SELECT docenti.accesso, docenti.psw, docenti.IdDocPk, docenti.nome '+'FROM Docenti '+'WHERE docenti.accesso = '+QuotedStr (Username.Text) +      'AND docenti.psw= '+QuotedStr (Password.Text));
    AQAccesso.open;       
    AQAccesso.First;
    NumId_docente:=AQAccesso.fieldbyname('IdDocPk').AsString;
    Ho tolto tutti i controlli se ha messo o no la password e l'username.
    La variabile in questione viene usata in modo corretto e facendo un piccolo debug riesco a far visualizzare in un Edit nella Form2 il valore corrispondente GIUSTO!!

    Il problema è "quello che non ha senso"!!! il debug(che sono capace di farlo funzionare )
    parte dalla Tform1.create!!! non è giusto.... come dici tu non può compilare una piccola parte e poi fare un'altra parte...
    ed è questo il problema. Esegue quello che non deve eseguire in primis

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Originariamente inviato da DvdDelphi
    Il problema è "quello che non ha senso"!!! il debug(che sono capace di farlo funzionare )
    parte dalla Tform1.create!!! non è giusto.... come dici tu non può compilare una piccola parte e poi fare un'altra parte...
    ed è questo il problema. Esegue quello che non deve eseguire in primis
    Ti ripeto: indipendentemente dall'ordine in cui vengono eseguite, entrambe le parti del programma vengono compilate.

    Detto questo, probabilmente nel sorgente del programma principale (file .dpr) l'ordine dei Form è diverso da quello che ti aspetti, o comunque il tuo codice fa in modo che una finestra venga mostrata prima dell'altra, o che una parte del codice venga eseguita prima dell'altra.

    Siccome sai fare debugging, parti dall'inizio del programma e segui il flusso delle istruzioni eseguite per capire il perché.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  10. #10
    facendo il debug, nel project1, vedo che è presente:


    begin
    Application.Initialize;
    Application.CreateForm(TForm2, Form2);
    Application.CreateForm(TForm1, Form1);
    Application.Run;
    end.

    Eccolo quello che mi fa partire tutto!!!
    Quindi l'ho eliminato, ma adesso nel codice per ottenere il valore password e nome utenza mi dice : Missing Connection or ConnectionString!!

    ecco qua il codice:
    codice:
    with AQAccesso do begin close;       
    AQAccesso.SQL.Clear; 
    AQAccesso.SQL.Add ('SELECT docenti.accesso, docenti.psw, docenti.IdDocPk, docenti.nome '+'FROM Docenti '+'WHERE docenti.accesso = '+QuotedStr (Username.Text) +'AND docenti.psw= '+QuotedStr (Password.Text));       
    AQAccesso.open;       
    AQAccesso.First;       
    end;

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.