Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [VB.NET]SQL: istruzione che và in errore

    Perchè se eseguo questa istruzione và in errore:
    il campo Giorno è di tipo testo
    il campo Causale è di tipo testo

    codice:
    Dim da As New OleDbDataAdapter("SELECT * FROM ore where Giorno >= '" & MaskedTextBox1.Text & "' AND  Giorno <='" & MaskedTextBox2.Text & "' AND Causale =  = '" & "F" & "'", cn)
    l'errore generato è:

    Codice PHP:
    Errore di sintassi (operatore mancantenell'espressione della query 'Giorno >= '01/06/07' AND  Giorno <='31/06/07' AND Causale =  = 'F''. 

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Se il campo Giorno è di tipo "Testo", qualsiasi confronto avverrà testualmente, appunto, cioè ordinando i valori in base al codice dei caratteri, alfabeticamente, che è ben diverso da quello che probabilmente vuoi fare tu (lo suppongo, visto che ci hai messo dentro delle date, per cui sarebbe più adatto - ovviamente - un valore Data/ora).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    SI sono d'accordo con te ma visto l' architettura della tabella che creo così:

    codice:
    Dim cmd As New OleDbCommand("SELECT * INTO [ore] FROM [Text;Database=C:\Documents and Settings\**\Documenti\WM_***My Documents\DB;Hdr=Yes].[ore.txt]", conn)

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Ci sono due = qui:

    codice:
    AND Causale =  = '" & "F" & "'",
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da kalosjo
    Ci sono due = qui:

    codice:
    AND Causale =  = '" & "F" & "'",
    CIAO kalosjo
    no è solo un errore di battitura
    difatti l' errore è sparito ma il problema è quello che mi visualizza anche i record fuori range
    codice:
    Dim da As New OleDbDataAdapter("SELECT * FROM ore where Giorno >= '" & MaskedTextBox1.Text & "' AND  Giorno <='" & MaskedTextBox2.Text & "' AND Causale = '" & "F" & "'", cn)

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Il campo giorno è in formato testo?
    Le date nel campo giorno sono scritte come DD/MM/YYYY?

    Allora è normale.....

    Infatti se è campo testo, vale l'ordine alfabetico, e "31/01/2007" è maggiore di "01/12/2007"

    In questi casi è meglio salvare nel database nel formato YYYYMMDD oppure YYYY/MM/DD
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    allora ho modificato così:
    codice:
    Dim da As New OleDbDataAdapter("SELECT * FROM ore WHERE Giorno >= '" & MaskedTextBox1.Text & "' AND  Giorno <='" & MaskedTextBox2.Text & "' AND MONTH(Giorno)= " & Mid(MaskedTextBox1.Text, 4, 2), cn)
    però mi resta di inserire
    codice:
    AND Causale =  = '" & ComboBox1.Text & "'

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da x69asterix
    SI sono d'accordo con te ma visto l' architettura della tabella che creo così [...]
    Non capisco cosa dovrei vedere dalla tua creazione. :master:

    Fare query su date basandosi su campi testuali è assurdo, oltreché errato, ed è quello il tuo problema. La soluzione è correggere la struttura utilizzando campi di tipo data/ora.
    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.