Visualizzazione dei risultati da 1 a 6 su 6

Discussione: SQL indomabile

  1. #1

    SQL indomabile

    Ciao a tutti volevo sottoporre alla vista dei maestri un caso strano e assolutamente fastidioso.

    Devo calcolare il prezzo del trasporto di una serie di oggetti inseriti in un array:

    Quindi il ragionamento che ho fatto e' il seguente:

    Apro il rs e scrivo:
    codice:
    Dim RStrasporto__value
    RStrasporto__value = "0"
    if (cart_PesoTot  <> "") then RStrasporto__value = cart_PesoTot
    ' arrotondo a 1 kg il peso della merce piu' piccola
    If RStrasporto__value < 1 then RStrasporto__value =1
    
    Dim RStrasporto__value2
    ' Dichiaro se il cliente e' italiano o no
    RStrasporto__value2 = ""
    If (CustomerRS("BillingCountry") <> "Italia") Then 
      RStrasporto__value2 = "Non Italia"
      else
      RStrasporto__value2 = "Italia"
    End If
    
    set RStrasporto = Server.CreateObject("ADODB.Recordset")
    RStrasporto.ActiveConnection = STRING
    
    RStrasporto.Source = "SELECT * FROM Shipping  WHERE (MinWeight<=RStrasporto__value) AND (MaxWeight>RStrasporto__value) AND (Italy LIKE 'RStrasporto__value2')"
    
    RStrasporto.CursorType = 0
    RStrasporto.CursorLocation = 2
    RStrasporto.LockType = 3
    RStrasporto.Open()
    Ma continua a darmi errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.

    Domanda: perche' se eseguo questa query all'interno access gira e mi da i risultati che desidero, ed invece a se la imposto qui mi si blocca?
    Ho provato a stampare l'sql (response.write)ed e' esatta, ho provato ad incollare l'sql in una SQLquery di access e gira senza intoppi...
    Non ci capisco piu!!!

    Un grazie a chi ha idee per aiutarmi a superare il problema.

    Ciao
    grazie.

  2. #2
    codice:
    set RStrasporto = Server.CreateObject("ADODB.Recordset")
    
    strSQL = "SELECT * FROM Shipping  WHERE (MinWeight<=RStrasporto__value) AND (MaxWeight>RStrasporto__value) AND (Italy LIKE 'RStrasporto__value2')"
    
    
    RStrasporto.open strSQL,nomeDellaConnessione
    prova così
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    ma RStrasporto__value e RStrasporto__value2 sono variabili....
    la query è errata

  4. #4
    RStrasporto__value
    RStrasporto__value2

    Sono 2 Variabili che setto prima con un request ed i dati ci sono ho stampato l'sql e si vedono!!

    Shagrat ho provato ma i idem di prima!! che storia....

    Help!
    grazie.

  5. #5
    scrivere

    strSQL = "... LIKE 'RStrasporto__value2'...."

    non e' corretto

    devi scrivere

    strSQL = "... LIKE '" & RStrasporto__value2 & "'...."

  6. #6

    Risolto

    Grazie gente con la vostra collaborazione ho risolto questo arcano estivo forse era il caldo che non mi faceva vedere ad un palmo dal naso!!!

    La soluzione adottata anche per i posteri la scrivo qui:
    codice:
    "SELECT * FROM Shipping  WHERE (MinWeight<="&RStrasporto__value&") AND (MaxWeight>"&RStrasporto__value&") AND (Italy LIKE '"&RStrasporto__value2&"')"
    Grazie di cuore a tutti alla prossima !

    Manza
    grazie.

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.