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

    [DELPHI7] problema con i campi data/ora di una DBGrid da Access

    Salve, sto scrivendo un piccolo applicativo in delphi 7 e ho un problema. Praticamente quando mostro i dati del database (Access 2007 .accdb) il campo contenente i dati in formato ora di viene mostrato come data ora (quindi 00:00:00 = 12/30/1899). si può rimediare e visualizzare solo 00:00:00??

    Grazie

    Federico

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Quale tecnologia stai utilizzando per accedere al database?
    ADO?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3

  4. #4

    ho un'altro problema più serio

    Ciao, scusate se vi disturbo ancora...
    praticamente io voglio visualizzare il risultato di una query su un form, se il testo SQL lo inserisco nella proprietà SQL dell'object inspector funziona, mentre se la inserisco da codice non vedo niente...
    Grazie

    Ciao

    Federico

    codice:
    procedure Tfrm_ricerca_concorrente.cerca;
    var 
    flag_vuota: boolean; 
    tipo_ricerca_num: integer; 
    tipo_ricerca : string; 
    testo_query : String; 
    msg: string;
    begin 
    // controllo cosa si vuole cercare 
    if (rb_sicard.Checked=True) then 
    begin
       txt_prova.Text:= txt_sicard.Text;
       tipo_ricerca_num:= 0; 
    end; 
    if (rb_pettorale.Checked=True) then
    begin
       txt_prova.Text:= txt_pettorale.Text;
       tipo_ricerca_num:= 1; 
    end;
    if (rb_nome.Checked=True) then
    begin 
       txt_prova.Text:= txt_nome.Text;
       tipo_ricerca_num:= 2; 
    end; 
    // controllo che la condizione di ricerca non sia vuota 
    if (txt_prova.Text = '') then 
    begin 
       flag_vuota := True;
       msg := 'Non hai immesso alcun testo';
       MessageDlg(msg, mtWarning, [mbOK], 0);
       end
    else
    begin
       if (tipo_ricerca_num = 0) then
       begin
          tipo_ricerca := 'sicard'; 
          testo_query := 'SELECT * FROM iscritti WHERE ' + tipo_ricerca + ' = ' + txt_prova.Text + ';';
       end;
       if (tipo_ricerca_num = 1) then
       begin 
          tipo_ricerca := 'pettorale'; 
          testo_query := 'SELECT * FROM iscritti WHERE ' + tipo_ricerca + ' = ' + txt_prova.Text + ';';
       end;
      if (tipo_ricerca_num = 2) then
      begin
          tipo_ricerca := 'nome'; 
          testo_query := 'SELECT * FROM iscritti WHERE ' + tipo_ricerca + ' like "%' + txt_prova.Text + '%";';
       end; 
       txt_sql.Text := testo_query; query_ricerca_concorrente.Close; 
       query_ricerca_concorrente.SQL.Clear; 
       query_ricerca_concorrente.SQL.Add(testo_query);    
       query_ricerca_concorrente.Open; 
       query_ricerca_concorrente.Active:= True;
       txt_sql.Text := query_ricerca_concorrente.SQL.GetText;
       Application.CreateForm(Tfrm_modifica_concorrente, frm_modifica_concorrente); 
       frm_modifica_concorrente.Show; frm_modifica_concorrente.BringToFront; 
       //frm_ricerca_concorrente.Close;  
    end; 
    end;

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

    Re: ho un'altro problema più serio

    Originariamente inviato da president1991
    Ciao, scusate se vi disturbo ancora...
    praticamente io voglio visualizzare il risultato di una query su un form, se il testo SQL lo inserisco nella proprietà SQL dell'object inspector funziona, mentre se la inserisco da codice non vedo niente...
    Probabilmente la query è errata, o include criteri che restringono i risultati e impediscono di ottenerne.

    Verifica in debug qual è la query SQL determinata tramite codice appena prima della sua esecuzione, e il problema dovrebbe emergere automaticamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    ho provato con il debug, e se provo a leggere la proprieta SQL.Gettext mi restituisce la query esatta, come anke quella ke mi scrive sulla text_sql.
    Sembra quasi che non importi la query, che non la esegua... non è che potresti girarmi qualche esempio così posso provarlo?
    Mi saresti d'avvero di grande aiuto, perchè le ho provate tutte...

    Grazie

    Ciao

    Federico

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da president1991
    ho provato con il debug, e se provo a leggere la proprieta SQL.Gettext mi restituisce la query esatta, come anke quella ke mi scrive sulla text_sql.
    Riporta qui il testo della query SQL così come ti viene visualizzata in fase di debug, appena prima della sua esecuzione con il metodo Open.

    P.S.: non usare Open e Active assieme... hanno lo stesso effetto, quindi o chiami i metodi Open/Close, o imposti la proprietà Active a True/False.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Ho sistemato la query, seguendo un esempio sul sito di delphi.

    però mi rimane sempre il problema dell'ora.
    cerco di spiegarmi meglio:
    sul database access 2007 ho un campo data/ora con i valori solo ore ( esempio: 01:23:25) e vorrei che in una dbgrid o in una dbedit fosse visualizzato 01:23:25 e non 30/12/1899 come invece viene fuori.

    non è possibile sistemare questa cosa??

    Grazie anticipatamente x l'aiuto

    Federico

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da president1991
    sul database access 2007 ho un campo data/ora con i valori solo ore ( esempio: 01:23:25) e vorrei che in una dbgrid o in una dbedit fosse visualizzato 01:23:25 e non 30/12/1899 come invece viene fuori.

    non è possibile sistemare questa cosa??
    Devi usare i campi persistenti (persistent fields): li definisci facendo doppio clic sul componente DataSet (la query), memorizzando le proprietà dei campi nel file DFM di Delphi; andando a selezionare uno specifico campo, puoi modificare la proprietà DisplayFormat per variare il modo in cui il campo viene mostrato in tutti i controlli data aware che vi fanno riferimento.

    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.