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

    Update che aggiorna, ma riporta Errore di Sintassi

    Ho uno strano problema.

    In una mia pagina devo effettuare l'update di un record con le modifiche inserite in un form.

    La Update funziona e il record viene modificato, ma mi viene comunque notificato un errore:

    Microsoft JET Database Engine error '80040e14'
    Syntax error (missing operator) in query expression '[IdGioco] ='.
    /gestore/modificagioco.asp, line 34
    La query è questa qua:

    codice:
    Call AproConnessione(StrConn, Conn)
    Sql = "UPDATE TbGiochi SET "
    Sql = Sql &"[Game_name] = "
    Sql = Sql &"'"& Replace(Session("Game_name"), "'", "''") &"', "
    Sql = Sql &"[Short_name] = "
    Sql = Sql &"'"& Replace(Session("Short_name"), "'", "''") &"', "
    Sql = Sql &"[icon] = "
    Sql = Sql &"'img_mda/"& Replace(Session("Icon"), "'", "''") &"' "
    Sql = Sql &" WHERE [IdGioco] = " & Replace(Session("IdGioco"), "'", "''")
    Conn.execute(Sql)
    Call ChiudoConnessione(Conn)
    IdGioco è un campo numerico long. Gli altri campi sono text.

    Ho provato a sostituire anche Replace(Session("IdGioco"), "'", "''") con Replace(Request.QueryString("IdGioco"), "'", "''"), visto che il valore lo posso ottenere anche dai parametri passati alla pagina.

    Ho provato a far stampare la query ed ottengo:
    codice:
    UPDATE TbGiochi SET [Game_name] = 'PROVA1112', [Short_name] = 'PROVA123', [icon] = 'img_mda/Q3' WHERE [IdGioco] = 7
    A me pare vada bene.

    Il problema però persiste ancora.
    E' da ieri sera che ci sbatto la testa ma con la mia niubbaggine non sono ancora riuscito a risolvere

    Mi date un aiutino?

    Grazie infinite
    Pictor

  2. #2
    Prova a mettere [IdGioco] tra `

    Fai così `[IdGioco]` = 7;

    O se ancora non dovesse andare `[IdGioco]` = '7';

    In ogni caso penso siano le parentesi quadre a dare fastidio... perchè non le togli ?

    Bye
    SGr33n

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    Sql = Sql &" WHERE [IdGioco] = " & CLng(Session("IdGioco"))
    Roby

  4. #4
    @ Roby_72

    Non cambia niente. E comunque non credo sia un problema di casting. Infatti Sql è una stringa e non dovrei aver bisogno di metterci un numero.

    @ SGr33n

    Le parentesi quadre le ho sempre messe (come vengono usate in Access) e non mi hanno mai dato problemi. E ne ho a bizzeffe di query nel sito. Non credo siano quelle.
    Per la questione degli apici non credo che un attributo vada tra apici E anche il campo IdGioco è un campo numerico (long) quindi non dovrebbe aver bisogno degli apici.

    Provo a fare qualche prova con quello che mi hai suggerito ma non credo che cambierà molto.

    EDIT

    Ho risolto

    Non era questione di apici o di casting. Non sono riuscito a capire perchè mi fosse segnalato lì l'errore.
    Il problema era che dopo l'update eseguiva un'altra funzione che lavorava sugli stessi campi per aggiornare le sessioni (che comunque non dovevano essere aggiornate).
    Ho commentato il richiamo ala funzione e adesso funziona tutto

    Grazie mille comunque dei consigli

  5. #5
    1.controlla i nomi dei campi
    2.prova ad eseguire la stringa direttamente in access

  6. #6
    Sì avevo già provato, e infatti mi pareva strano che in access (o comunque con l'interfaccia per la gestione del DB) funzionasse correttamente

  7. #7
    Gli apici fatti con alt+096 servono a delimitare i nomi dei campi... poteva essere una buona idea se le parentesi quadre costituivano un problema

    Bye
    SGr33n

  8. #8
    in effetti siamo stati tutti un po' frettolosi... se quell'istruzione di update andava a buon fine, doveva per forza essere buona, e l'errore stare da qualche altra parte...

  9. #9
    Non importa se siete stati frettolosi

    Apprezzo già tanto il fatto che mi abbiate aiutato

    Non pretendo poi la perfezione e la professionalità nei consigli di chi mi aiuta gratuitamente, no?
    In fondo è questa la filosofia dell'aiutarsi

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.