INSERT INTO NON VA'

lunedì 19 febbraio 2007 - 18.26

pieroalampi Profilo | Expert

Salve in un astriga comando:
"INSERT INTO versatotxt (PROGRESSIVO) VALUES (" + a + ")"

mi capita che a possa essere uguale ad una stringa intera come
a="pippo"
oppure
ad una stringa spezzata comme:
a="'AVALLON BEIGE CLAIR'"

a questo punto mi arriva questo messaggio di errore:
Errore di sintassi (operatore mancante) nell'espressione della query 'AVALLON BEIGE CLAIR'.

come posso fare per risolvere?

vb.net 2005
------------------------------------------------------
::::Sempre a manetta in curva::::
------------------------------------------------------

lbenaglia Profilo | Guru

>Salve in un astriga comando:
>"INSERT INTO versatotxt (PROGRESSIVO) VALUES (" + a + ")"
>
>mi capita che a possa essere uguale ad una stringa intera come
>a="pippo"
>oppure
>ad una stringa spezzata comme:
>a="'AVALLON BEIGE CLAIR'"
>
>a questo punto mi arriva questo messaggio di errore:
>Errore di sintassi (operatore mancante) nell'espressione della
>query 'AVALLON BEIGE CLAIR'.
>
>come posso fare per risolvere?

Ciao pieroalampi,

Indipendentemente al DBMS al quale ti connetti, lo standard ANSI SQL prevede che le stringhe siano delimitate da una coppia di singoli apici (').
Es:

INSERT INTO MiaTabella VALUES('Inserisci questa stringa');

Nel caso in cui il valore contenga a sua volta un apice ('), occorrerà duplicarlo altrimenti sarà sollevata una eccezione simile a quella che hai postato:

INSERT INTO MiaTabella VALUES('Inserisci questa stringa con l''apostrofo');

L'uso di Query (in Access) o di Stored Procedure (negli altri DBMS) parametriche tra gli innumerevoli vantaggi (sicurezza, prestazioni, ecc.) permettono di ovviare ad una eventuale duplicazione manuale degli apici.
A titolo di esempio prova a leggere questo thread:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/8cffa517474e4df/

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5