Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [VB]Sintassi SQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41

    [VB]Sintassi SQL

    ciao a tutti vi espongo il mio problema-....

    ho tanti nomi su un db con l'apostrofo
    quando faccio una query per cercare ad esempio W L'Italia
    e la faccio cosi
    Sql = "select * from Titoli Where Titolo = '" & variabile & "'"
    dove variabile = "W L'Italia"
    Visual basic mi da errore mi dice operatore mancante, perche nella variabile c'è l'apostrofo; come posso risolvere?
    qualche idea?


    grazie a tutti

  2. #2
    bhe...dovresti fare un "Replace" del carattere ' con il suo corrispondente "& # 039;" (senza spazi..). Con l'ASP funziona...in visual basic non so...

    ciao!
    "Ogni artista è un cannibale, ogni poeta è un ladro
    tutti uccidono la loro ispirazione poi cantano del loro dolore "

  3. #3
    Utente di HTML.it L'avatar di jhonny
    Registrato dal
    May 2001
    Messaggi
    130
    PROVA COSì

    "Select from ordini where prodotto = '" & Replace(text1.text, "'", "''") & "'"



    :adhone:
    "Non cercare di piegare il cucchiaio ma cerca di fare la cosa più saggia.....
    ...pensa che il cucchiaio non esiste,allora vedrai che è la tua MENTE a piegarsi"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    102

    Oppure

    Vi sono vari modi per risolvere il problema:
    Innanzitutto bisogna vedere se puoi immettere i dati sul tuo DB con il doppio apice agendo cosi prima di costruire la query al DB:

    Dim VarTemp As String

    VarTemp = Variabile
    Variabile= Replace(VarTemp, "'", "''")

    Ovviamente se tale solution e' fattibile quando vai a pescare il record fai il replace inverso.

    SE non ti e' possibile modificare il DB potresti effettuare la query aggirando il problema con il like:
    I vai a prendere i caratteri prima o dopo l'apice e la stringa SQL la puoi fare cosi:
    Sql = "select * from Titoli Where Titolo like '%" & variabile & "%'"


    No e' bello fare in questo modo, cmq oggi vedo se esiste una sintassi SQL per l'apice.
    NOn ti posso garantire nulla, ma visto che pure io ho il medesimo problema vediamo se si riesce a risolvere



    ))))))


    Laufer

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41
    ok innanzitutto grazie a tutti per le risposte....

    1) il replace funziona ovviamente e quindi per un programma ho risolto cosi..........il problema mi sorge perche poi devo fare il confronto dei nomi dei file in una cartella con i nomi in un database, (ovviamente i nomi dei file nn li posso cambiare, e file come "l'anno 1978 attività...... .doc" mi danno errore proprio per l'apice....

    2) con la like avevo gia provato ma nn andava..........

    se trovate qualcosa fate sapere grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    102

    Banalmente

    Per far eseguire la stringa Sql basta raddoppiargli l'apice.

    Esempio banale
    select * from pippo where = "w L'Italia"

    da errore

    mentre
    select * from pippo where = "w L''Italia"

    restituisce il risultato della query



    Per il tuo problema tempo di nn aver capito


    Laufer

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41
    scusami mi spiego meglio

    su una cartellina ho tanti file .doc
    io li prendo uno per uno e li confronto su di un database con un ciclo

    mi chiedevo se passando ogni volta il file alla select; e facendo il replace dell'apice sulla query, nel database avrebbe corrisposto il nome

    ho fatto la prova e funziona
    grazie a tutti

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.