# Environnements de dveloppement > Autres EDI > Powerbuilder >  [PowerBuilder 10] Procdure stocke sous SQL Server 2000

## digital prophecy

Bonjour, j'utilise PowerBuilder 10 de puis un mois maintenat. J'ai cr une procdure stocke en SQL Server 2000 auquel je me connecte via ODBC en passant par SQLCA. j'ai cr une procdure stocke qui met  jour une table et renvoie un entier.

Comment je fais en powerBuilder pour Excuter la procdure et rcuprer la valeur de rtour dans une variable antire ?

Merci pour votre aide

----------


## Thig

Bonjour

Essaye quelque chose comme ca :

// --- Declaration de la proc stock
DECLARE maProcStock PROCEDURE FOR maProcStock  
         @var_in_1 = :l_var_in_1,           
         @var_in_n: = :l_var_in_n,         
         @var_out_n: = :l_var_out_n,  output ;

// --- lancement du traitement
EXECUTE maProcStock;

// --- dtection d'erreur  l'execution de la proc
IF SQLCA.sqlCode <> 0
 CLOSE maProcStock;
 Return -1
END IF 

// --- rcupration des paramtres mis en output ou renvoyer par return de la proc
DO WHILE SQLCA.SQLCODE = 0
 FETCH maProcStock INTO :l_var_out_n;
LOOP

IF SQLCA.SQLCODE = -1 THEN
 // --- erreur sur la rcupration des donnes
 CLOSE maProcStock;
 RETURN -1
END IF

CLOSE maProcStock;    

...

A+ Thig

----------


## digital prophecy

Merci Thig !

J'ai cri le code, mais il me gnre l'rreur suivante : 


```

```

Je ne comprends rien, pck ma procdure stocke parche bien dans l'analyseur de requte SQL Serveur.

Voici ma procdure stocke :



```

```

Mon code PowerScript : 


```

```

----------


## Thig

SQLCA.sqlErrText contient le message d'erreur envoy par la base (en cas d'erreur uniquement).

Pour rcuprer le paramtre currentValue il faut faire au moins un fecth.

Au minimun :

long ll_currentValue = 0

DECLARE ...

EXECUTE ...

fecth getSequence into :ll_currentValue;

CLOSE ...

Il est possible de voir ce que Pb envoie  la base en utilisant le fichier de trace des ordres SQL ( voir menu System Option )

----------


## digital prophecy

Thig, je tiens d'abord  te remercier pour l'attention que tu m'accorde.

Le problme rside justement dans le fait que SQLCA.SQLCODE vaut  -1  donc il y a erreur dans l'excution de la commande, et c'est l'erreur que j'ai affiche plus haut. Mon problme c'est que je ne sais vraiment pas comment rsoudre ce problme.

Merci bcp !

----------


## Thig

merci... ::D: 

Je ne connais pas l'erreur 22005, c'est quoi le message complet ?( on le voit pas )  

Thig

----------


## digital prophecy

Le message d'erreur c'est celui l :





> SQLSTATE = 22005
> [Microsoft][ODBC SQL Server Driver]
> Valeur de caractre non valide
> pour la spcification de la casse


c'est celui-l justement que j'ai repris dans mon message plus haut.

merci !

----------


## Thig

Bonjour

C'est peut tre un problme de configuration de la connection ODBC avec SQLServeur...

Essaye d'ajouter au paramtre SQLCA.DBParm = "StripParmNames='Yes'"

Thig

----------


## shahin

Apparemment, c'est un problme li  ODBC.
Si tu as la version entreprise utilise OLE DB ou ado.net.

Si tu as la version pro, il faut contacter Sybase

----------

