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

    [VB .net] Interrogazione su data - Sto impazzendo!

    Le ho provate tutte, ricerche in internet e mille tentativi ma nulla.

    Descrizione:
    Ho una tabella "Soldi" db access cosi formato:
    ---------------------------------------
    | Nome | Importo | Data |
    ----------------------------------------
    | Ste | 5000 | 01/08/2004 |
    | Giovanni| 3000 | 01/09/2004 |
    ---------------------------------------

    Il campo data e' settato nel db come TIPO "data" GG/MM/AAAA

    Ora....siccome dovrei interrogare il db per avere i record dalla data 01/07/2004 alla data 01/10/2004...

    Nell'Sql di visual basic imposto l'interrogazione con:
    ...Select Importo From Soldi WHERE Data between 01/07/2004 AND 01/10/2004...

    Il risultato risulta 0 record trovati.
    Se metto WHERE Data >= 01/07/2004 mi mostra i 2 record.
    Ho provato a mettere: ' # % <= >= o combinarli tra loro ma nulla. Se pero' agisco su una query che creo in access con gli stessi parameri di ricerca ricevo 2 record trovati.
    Qualcuno conosce la soluzione?
    [CRY] - Counter-Strike clan! I want you!
    Sostenitore della teoria: ruttare e' umano ma scoreggiare e' divino.

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

    Uso di parametri?

    Potresti utilizzare una query parametrica sostituendo i valori in linea (in formato testuale) con dei caratteri ? e, successivamente, definire nell'ordine in cui appaiono i suddetti "segnaposto" più oggetti OdbcCommand (o SqlCommand, dipende dalla base dati alla quale ti colleghi) assegnando loro il tipo data/ora e il valore desiderato utilizzando la proprietà Value.

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

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

  3. #3
    Ok, ora puoi spiegarlo con termini piu' umani? Magari con un esempio. Ti rigrazio.
    [CRY] - Counter-Strike clan! I want you!
    Sostenitore della teoria: ruttare e' umano ma scoreggiare e' divino.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Non posso verificare il codice nella pratica, ma spero che l'esempio sia sufficiente.
    codice:
      Dim myConnection As New OdbcConnection(myConnString)
      Dim myCommand As New OdbcCommand("Select Importo From Soldi WHERE Data between ? AND ?", myConnection)
      myConnection.Open()
      Dim myStartDate As New OdbcParam("StartDate", OdbcType.Date);
      myStartDate.Value = Now.AddDays(-7)
      myCommand.Parameters.Add(myStartDate)
      Dim myEndDate As New OdbcParam("EndDate", OdbcType.Date)
      myEndDate.Value = Now
      myCommand.Parameters.Add(myEndDate)
      myCommand.ExecuteReader...
    In definitiva, si tratta di un espediente per poter specificare le date limite dell'intervallo in modo parametrico, senza doverle necessariamente inserire sottoforma di stringa - con tutte le ambiguità del caso - all'interno dello statement SQL.

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

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

  5. #5
    La tua cortesia e' pari alla tua competenza. Il codice fornito (oppurtunamente adattato) va benissimo, perfetto.

    Mi stupisce il fatto che un linguaggio "rivisto", cosi importante abbia una procedura cosi macchinosa per fare una semplice interrogazione. Ma e' anche vero che c'e' ancora l'ambrosia a Milano.
    [CRY] - Counter-Strike clan! I want you!
    Sostenitore della teoria: ruttare e' umano ma scoreggiare e' divino.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da Rabinhood
    La tua cortesia e' pari alla tua competenza. Il codice fornito (oppurtunamente adattato) va benissimo, perfetto.
    Molte grazie.

    Originariamente inviato da Rabinhood
    Mi stupisce il fatto che un linguaggio "rivisto", cosi importante abbia una procedura cosi macchinosa per fare una semplice interrogazione.
    E' quasi sempre possibile abbreviare; ad esempio, nella creazione del parametro si può quasi sempre specificare su una sola riga il nome, il tipo e il valore.

    Consulta la documentazione del .NET Framework SDK per conoscere tutte le versioni dei metodi disponibili (in overloading) per le classi citate e guarda se è possibile "comprimere" il codice scrivendo qualche riga in meno.

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