2009-10-05 4 views
0

En utilisant SQL Server 2000 et VB6obtenir erreur lors de l'insertion d'une seule cotation des valeurs

Tableau 1

EmpName1 

Raja 
Rav'i 
Ramu'i 
Rajes'ih 

Tableau 2

EmpName2 

.... 

Quand je l'insertion table2.empname2 de table1.empname1, Il inséré seulement raja, les lignes restantes n'ont pas été insérées, il montre une erreur dans '(guillemet simple)

"Showing error as incorrect syntax near rav" 

code vb6.

INSERT INTO table2 (EmpName) VALUES('" & EmpName & "') 

Comment puis-je insérer le nom avec une seule citation également.

Besoin d'aide pour les requêtes et le code.

Répondre

1

Vous pouvez échapper à votre seule citation avec quelque chose comme

EmpName = remplacer (EmpName, "'", " ''")

ou paramertize votre requête ...

+1

Pour le rendre plus clair, vous aurez envie de remplacer les guillemets simples avec deux guillemets simples. SQL Server convertira ceux-ci en un seul guillemet simple. – mrdenny

2

Il est fortement recommandé d'utiliser une requête paramétrée (voir par exemple this article), au lieu de construire votre requête SQL en tant que chaîne. Cela vous protège de nombreuses formes d'injection SQL et est souvent plus rapide.

Ou utilisez directement un type de cadre de persistance, si vous avez beaucoup d'interaction avec la base de données.

Votre requête ne fonctionnera pas car dans les requêtes SQL de chaîne, le 'doit être échappé (comme' '). Et BTW, si vous voulez insérer des valeurs d'une table dans une autre, ce n'est généralement pas une bonne idée de faire un SELECT, puis un INSERT dans une boucle, comme vous le faites. Il suffit de faire un

INSERT INTO table2 SELECT ... FROM table1

+0

Il pose une question VB6. Le lien pointe vers un didacticiel vb.net. – AngryHacker

+0

Merci d'avoir signalé cela; Je n'ai jamais travaillé avec, désolé. Quoi qu'il en soit, les requêtes paramétrées sont un concept indépendant de tout langage particulier, donc cela ne devrait pas avoir d'importance :-). – sleske

Questions connexes