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

    [VB NET] query non funziona

    Ciao a tutti, chiedo aiuto perche ho questo messaggio all'esecuzione del mio software

    "NESSUN VALORE SPECIFICATO PER ALCUNI PARAMETRI"

    e precisamente in questa query:

    QUESTA NON FUNZIONA:

    codice:
    select
        cstr(
            iif (len(Provvigione)=8,Provvigione 
               iif (len(Provvigione)=7, '0' & Provvigione 
                  iif (len(Provvigione)=6, '00' & Provvigione 
                      iif (len(Provvigione)=5, '000' & Provvigione 
                         iif (len(Provvigione)=4, '0000' & Provvigione 
                            iif (len(Provvigione)=1, '3112202' & Provvigione , Provvigione
                            )
                        )
                     )
                  )
               )
            )
        ) as DataCorretta,
        Date() AS DataOdierna,
        DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4))) AS Dat,
        mid(DataCorretta,1,2) AS Dat1,
        mid(DataCorretta,3,2) AS Dat2,
        mid(DataCorretta,5,4) AS Dat3,
        cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)) AS DataRovesciata,
        Provvigione, Codice, Descrizione, Categoria1, Categoria2, PrezzoAcquisto, PrezzoVendita, Ricarico1, Stagione
    from DesArt
    where
        1=1 and len(Categoria1)>3 and len(Categoria2)>3 and 
        DateDiff('d', cdate(Date()), cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)))>0
    SE CAMBIO l'ultima riga e metto un valore statico invece che dinamico, mi esce l'errore

    QUESTA FUNZIONA:

    codice:
    select
        cstr(
            iif (len(Provvigione)=8,Provvigione 
               iif (len(Provvigione)=7, '0' & Provvigione 
                  iif (len(Provvigione)=6, '00' & Provvigione 
                      iif (len(Provvigione)=5, '000' & Provvigione 
                         iif (len(Provvigione)=4, '0000' & Provvigione 
                            iif (len(Provvigione)=1, '3112202' & Provvigione , Provvigione
                            )
                        )
                     )
                  )
               )
            )
        ) as DataCorretta,
        Date() AS DataOdierna,
        DateDiff('d', cdate(Date()),
        cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4))) AS Dat,
        mid(DataCorretta,1,2) AS Dat1,
        mid(DataCorretta,3,2) AS Dat2,
        mid(DataCorretta,5,4) AS Dat3,
        cdate(mid(DataCorretta,1,2) & '/' & mid(DataCorretta,3,2) & '/' & mid(DataCorretta,5,4)) AS DataRovesciata,
        Provvigione, Codice, Descrizione, Categoria1, Categoria2, PrezzoAcquisto, PrezzoVendita, Ricarico1, Stagione
    from DesArt
    where
        1=1 and len(Categoria1)>3 and len(Categoria2)>3 and 
        DateDiff('d', cdate(Date()), '26' & '/' & '10' & '/' & '2012')>0
    sto diventando matto, la seconda query è uguale alla prima query solo che invece di mettere una data dinamica ce la metto fissa '26' & '/' & '10' & '/' & '2012'

    idee?

    grazie
    Mercatino online di annunci www.all-onweb.com
    Realizzazione siti web www.nineseven97.com
    Artigianato www.lartedifare.com

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Il problema sta in quel DataCorretta

    Non è un campo del database, ma probabilmente una variabile che passi alla stringa e che non hai concatenato ma scritto così com'è...

    Il messaggio "NESSUN VALORE SPECIFICATO PER ALCUNI PARAMETRI" è classico di un errore in un nome di campo
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Certo che scrivere query in quel modo è da temerari.
    E' più facile sbagliare che indovinarci.
    Poi quando non funzionano c'è da venire matti

    Ti suggerisco caldamente di studiarti Command e Parametri (vedi esempi nella mia firma).


  4. #4
    gibra, la query è giusta, c'è solo sto inconveniente sull'ultima riga.

    se avete qualche idea?

    DataCorretta non è un campo fisico del db, ma un campo creato tramite la query e la manipolazione dei dati, non vedo dove sia il problema.
    Mercatino online di annunci www.all-onweb.com
    Realizzazione siti web www.nineseven97.com
    Artigianato www.lartedifare.com

  5. #5
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Il problema è che se è un valore dinamico deve essere concatenato nella query
    Tipo
    codice:
    "DateDiff('d', cdate(Date()), cdate(mid(" & DataCorretta & ",1,2) & '/' & mid(" & DataCorretta & ",3,2) & '/' & mid(" & DataCorretta & ",5,4)))>0 "
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  6. #6
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,289
    Originariamente inviato da caniggia
    gibra, la query è giusta, c'è solo sto inconveniente sull'ultima riga.

    se avete qualche idea?

    DataCorretta non è un campo fisico del db, ma un campo creato tramite la query e la manipolazione dei dati, non vedo dove sia il problema.
    In soldoni sta dicendo che una query del genere è poco gestibile, non che non funzionerà.
    Stai demandando al database alcuni calcoli che potresti fare facilmente e più chiaramente via codice.

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da caniggia
    gibra, la query è giusta, c'è solo sto inconveniente sull'ultima riga.

    se avete qualche idea?

    DataCorretta non è un campo fisico del db, ma un campo creato tramite la query e la manipolazione dei dati, non vedo dove sia il problema.
    Appunto, questo conferma quanto ho scritto prima.

    Se la query fosse giusta non saresti qui a chiedere aiuto, mi pare.

    L'idea te l'ho data, ma se chiedi consigli e poi rispondi che non li accetti...


    Si può sapere quale database stai usando?



    P.S. La prossima volta posta il codice formattato (com'è indicato nel Regolamento.)

  8. #8

    Moderazione

    Originariamente inviato da gibra
    P.S. La prossima volta posta il codice formattato (com'è indicato nel Regolamento.)
    Esattamente, 'sta volta ho sistemato io (e per riuscire a dargli un aspetto vagamente umano ci ho perso dieci minuti con il vim), in futuro vedi di postare roba almeno vagamente leggibile e inclusa nei tag [code].

    (e non posso che confermare anche quanto detto prima da gibra - se ti ritrovi con delle query di questo genere con ogni probabilità stai sbagliando qualcosa nell'impostazione del tuo codice)
    Amaro C++, il gusto pieno dell'undefined behavior.

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.