Executer une requete SQL stockée dans une chaine

Le
FG
Bonjour,

Sur un serveur SQL 2000, j'ai une procédure stockée :


CREATE PROCEDURE [EXECUTER_REQUETE]

@CODE char(1000)

AS

exec(@CODE)
GO



En VB6, quand je dois executer des requetes, j'appelle ma procédure stockée
en lui passant ma requete SQL en parametres, dans une variable de type
chaine de caracteres.

Cela marche très bien seulement quand il n'y a pas d'apostrophe dans la
chaine, mais des que j'essaie de passer une requete du type Select * From
T_USERS Where NOM='Toto'..j'ai une erreur de syntaxe. EN doublant les
carcatères 'simple cote', j'ai aussi un message d'erreurPour
l'instant, j'execute directement le code en ouvrant des recordset, mais sur
certaines requetes, cela me pose un probleme de performances, c'est pour
cela que je préfère utiliser des procédures stockées.

Please Help.

FG
Vos réponses
Trier par : date / pertinence
Fred BROUARD
Le #15605611
FG a écrit:
Bonjour,

Sur un serveur SQL 2000, j'ai une procédure stockée :


CREATE PROCEDURE [EXECUTER_REQUETE]

@CODE char(1000)

AS

exec(@CODE)
GO



En VB6, quand je dois executer des requetes, j'appelle ma procédure stockée
en lui passant ma requete SQL en parametres, dans une variable de type
chaine de caracteres.

Cela marche très bien seulement quand il n'y a pas d'apostrophe dans la
chaine, mais des que j'essaie de passer une requete du type Select * From
T_USERS Where NOM='Toto'..j'ai une erreur de syntaxe. EN doublant les
carcatères 'simple cote', j'ai aussi un message d'erreur......



Il ne faut pas mettre de "double quote" mais deux apostrophes.
Il convient aussi de dédoubler les apostrophe à l'intérieur des chaines de
caractères.

A +



Pour
l'instant, j'execute directement le code en ouvrant des recordset, mais sur
certaines requetes, cela me pose un probleme de performances, c'est pour
cela que je préfère utiliser des procédures stockées.......

Please Help.

FG





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Zoury
Le #15605601
Salut FG!

Si tu jètes un oeil à ce message, tu verras comment appeler des procédures
stockées depuis VB6 via la librairie ADODB.
http://groups.google.com/groups?threadm=eS2Bqi4yCHA.1924%40TK2MSFTNGP12

Un des avantages à utiliser cette méthode au lieu d'appeler la procédure
stockée directement (en tant que requête) est que les modalités d'appel de
la procédure stockée tel que la syntaxe est gèrer par ADODB, ce qui rend le
code plus portable. Tu pourrais changer de version de SQL Server ou même de
sorte de BD est le code devrait rester le même.

--
Cordialement
Yanick
MVP pour Visual Basic
"FG" news:420a079d$0$506$
Bonjour,

Sur un serveur SQL 2000, j'ai une procédure stockée :


CREATE PROCEDURE [EXECUTER_REQUETE]

@CODE char(1000)

AS

exec(@CODE)
GO



En VB6, quand je dois executer des requetes, j'appelle ma procédure


stockée
en lui passant ma requete SQL en parametres, dans une variable de type
chaine de caracteres.

Cela marche très bien seulement quand il n'y a pas d'apostrophe dans la
chaine, mais des que j'essaie de passer une requete du type Select * From
T_USERS Where NOM='Toto'..j'ai une erreur de syntaxe. EN doublant les
carcatères 'simple cote', j'ai aussi un message d'erreur......Pour
l'instant, j'execute directement le code en ouvrant des recordset, mais


sur
certaines requetes, cela me pose un probleme de performances, c'est pour
cela que je préfère utiliser des procédures stockées.......

Please Help.

FG




FG
Le #15605381
merci, je vais essayer cette méthode qui me parait plus standard d'utiliser
une procédure stockée.

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut FG!

Si tu jètes un oeil à ce message, tu verras comment appeler des procédures
stockées depuis VB6 via la librairie ADODB.
http://groups.google.com/groups?threadm=eS2Bqi4yCHA.1924%40TK2MSFTNGP12

Un des avantages à utiliser cette méthode au lieu d'appeler la procédure
stockée directement (en tant que requête) est que les modalités d'appel de
la procédure stockée tel que la syntaxe est gèrer par ADODB, ce qui rend


le
code plus portable. Tu pourrais changer de version de SQL Server ou même


de
sorte de BD est le code devrait rester le même.

--
Cordialement
Yanick
MVP pour Visual Basic
"FG" news:420a079d$0$506$
> Bonjour,
>
> Sur un serveur SQL 2000, j'ai une procédure stockée :
>
>
> CREATE PROCEDURE [EXECUTER_REQUETE]
>
> @CODE char(1000)
>
> AS
>
> exec(@CODE)
> GO
>
>
>
> En VB6, quand je dois executer des requetes, j'appelle ma procédure
stockée
> en lui passant ma requete SQL en parametres, dans une variable de type
> chaine de caracteres.
>
> Cela marche très bien seulement quand il n'y a pas d'apostrophe dans la
> chaine, mais des que j'essaie de passer une requete du type Select *


From
> T_USERS Where NOM='Toto'..j'ai une erreur de syntaxe. EN doublant les
> carcatères 'simple cote', j'ai aussi un message d'erreur......Pour
> l'instant, j'execute directement le code en ouvrant des recordset, mais
sur
> certaines requetes, cela me pose un probleme de performances, c'est pour
> cela que je préfère utiliser des procédures stockées.......
>
> Please Help.
>
> FG
>
>




Publicité
Poster une réponse
Anonyme