Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92

    [Delphi] MySQL - User e Pssword

    Ogni volta che avvio il programma
    MySql apre una finestra di login
    in cui mi richiede User e Password...:quipy:
    c'è un modo per evitare di dover digitare
    sempre il nome utente e la password?

    Grazie
    Kate71

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Individua il componente che rappresenta la connessione al database (dipende dal tipo di motore che usi per l'accesso ai dati).

    Se usi BDE, ad esempio, si tratta del componente TDatabase.

    Ciascun componente di questo tipo possiede una proprietà LoginPrompt che puoi impostare a False per evitare che ti venga presentata ogni volta la maschera di login fornita da Delphi.

    E' ovvio che poi dovrai assumerti la responsabilità di fornire in qualche modo, ad esempio tramite codice, lo "username" e la "password" corretti per la connessione.

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

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    Ho provato ad utilizzare il componente TDatabase.
    Ho fatto doppio clic sul componente e ho aggiunto
    USER NAME = root
    PASSWORD = vuota - al momento non ne voglio alcuna.
    Ho provato ad impostare la proprietà
    LoginPrompt a false
    ma al clic sul pulsante Insert il problema
    si pone di nuovo e mi chiede ancora Login e Psw
    per poi generare un errore:
    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project Project1.exe raised exception class EDatabaseError with message
    'Table1: Cannot perform this operation on a closed dataset'.
    Process stopped. Use Step or Run to continue.
    ---------------------------

    Questo perchè le tabelle risultano chiuse, suppongo.
    Ma certo non posso impostare tutte le mie tabelle a true.
    ho provato a scrivere ne codice
    procedure TForm1.Database1AfterConnect(Sender: TObject);
    begin
    Table1.Active := True;
    Table2.Active := True;
    end;

    ma chiaramente continua a chiedermi la password e il nome utente!

    Cosa posso fare?


  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Sei sicura di aver associato l'AliasName delle tabelle al nome del database visibile localmente nell'applicazione (contenuto nella proprietà DBName del TDatabase)?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    stavo giusto rispondendoti di nuovo...
    sei stato rapidissimo...

    ho voluto testare di nuovo il componente TDatabase.
    In effetti ... non avevo notato la proprietà
    DatabaseName
    che io digito.... e che è poi la
    proprietà che richiamo da DatabaseName di TTable e TQuery.
    In questo modo...non mi richiede password e nome utente
    ma mi genera lo stesso errore che ti ho scritto sopra!
    Questo errore suppongo ci porti all'altra discussione su
    Tabelle e Database.


    Kate71

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non portarmi da una discussione all'altra...non ce n'è bisogno.

    L'errore può essere dovuto a tante cose...devi dirmi su quale riga appare per poterti dare un aiuto.

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

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92

    Grazie!

    direi che ora tutto funziona!
    Non mi apre più la finestra User/Password!!!

    credevo che il componente Database potesse evitarmi
    di aprire e chiudere le tabelle ogni volta!
    ma se così non è ...pazienza!!
    Mettendo a true le tabelle nel momento
    in cui servono... non da più nessun errore!!

    Grazie mille!!
    Kate71

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: Grazie!

    Originariamente inviato da kate71
    Mettendo a true le tabelle nel momento
    in cui servono... non da più nessun errore!!
    Ti spiego anche il perchè: associando tutte le tabelle il riferimento tramite alias ad un database esterno, ognuna cercava di crearsi e aprirsi, all'occorrenza, la propria connessione al database.

    Usando il componente TDataBase, hai "centralizzato" la connessione che viene aperta solo per questo componente e viene resa pubblica attraverso un nome elencato anche negli elenchi degli alias disponibili per le tabelle.

    Quando una tabella è associata ad un alias di database interno, tenterà di aprire quella e solo quella connessione, se non è già aperta. Così avrai un'unica connessione, aperta solo una volta con una sola richiesta di username e password che puoi sopprimere (come hai fatto tu) e disponibile per tutte le altre tabelle.

    Risparmi risorse sul server e anche sul client, diminuendo il numero di connessioni aperte e velocizzando anche il processo di intercomunicazione tra il tuo programma e il server MySQL, evitando di aprire una nuova connessione ogni volta che attivi una tabella.

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