PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 20-04-2009 13:54:55

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

[RESOLU] requete SQL format 2

bonjour a vous,
voila j'ai utilisé une requete SQL format 2 qui ressemble à ça:

Code: pb

sqlupdate= "insert into"+table_name+ "(code_jou, cpt_gnl, credit, c_anal, dat_oper, debit , n_ordre, n_piece, mois) values (?,?, ?,?, ?,?,?, ?,?);"  
    prepare SQLSA  from  ' sqlupdate';
    EXECUTE sqlsa  using :code_jr,: cpt, :crd, :tiers, :dat_piece, :deb, :ord, :piece, :month ; 


il me sort un message de ce type:
"msmatch between prepared number of substitution variables and execute parameters"


qqn pourrait il m'aider à comprendre d'ou vient le probleme?
merci


MESSAGE DE MODERATION : la balise de code PB s'utilise avec un "égal" et non "deux points" :  [ code = pb ] (sans les espaces)

Dernière modification par disneb (20-04-2009 14:50:25)

Hors ligne

 

#2 20-04-2009 14:15:50

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] requete SQL format 2

tu fais un : prepare SQLSA  from  ' sqlupdate'; => PB utilise donc la chaine ' sqlupdate' et non la variable sqlupdate

par ailleurs il manque un espace après le into et il y a une erreur de syntaxe SQL avec deux virgules à la suite dans debit, , n_ordre



voici l'exemple de l'aide PB :

Code: pb

INT Dept_id_var = 156
INT Mgr_id_var     
String  Dept_name_var

Dept_name_var = "Department"
SetNull(Mgr_id_var)

PREPARE SQLSA FROM "INSERT INTO department VALUES (?,?,?)" ;
EXECUTE SQLSA  USING :Dept_id_var,:Dept_name_var,:Mgr_id_var ;

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 20-04-2009 14:21:00

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] requete SQL format 2

A priori tu as du mal avec l'aide PB
Voici ce qu'il faut dans ton cas :

Code: pb

    sqlupdate= "insert into "+table_name+ " (code_jou, cpt_gnl, credit, c_anal, dat_oper, debit , n_ordre, n_piece, mois) values (?,?, ?,?, ?,?,?, ?,?);"  
    prepare SQLSA  from  sqlupdate;
    EXECUTE sqlsa  using :code_jr, :cpt, :crd, :tiers, :dat_piece, :deb, :ord, :piece, :month ; 


(Eraz, il y a aussi le : devant cpt qui a un espace de trop... )


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#4 20-04-2009 14:24:12

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] requete SQL format 2

Chrnico a écrit:

(Eraz, il y a aussi le : devant cpt qui a un espace de trop... )

ça doit être celui qui était après le into qui a mis les bouts...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 20-04-2009 14:25:04

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: [RESOLU] requete SQL format 2

merci pour ta réponse
mon problème est que le nom de table est dynamique d'où la variable table_name et quand je utilise ça:

Code: pb

PREPARE SQLSA FROM "INSERT INTO "+table_name+" VALUES (?,?,?)" ;
EXECUTE SQLSA  USING :Dept_id_var,:Dept_name_var,:Mgr_id_var ;

il me sort syntaxe error
pour les deux virgules j'ai collé mon texte en deux fois et j'ai mal collé

Hors ligne

 

#6 20-04-2009 14:27:02

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] requete SQL format 2

passe par une variable


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#7 20-04-2009 14:27:53

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: [RESOLU] requete SQL format 2

table_name est une variable!!!
et chronico: syntax error

Dernière modification par disneb (20-04-2009 14:30:41)

Hors ligne

 

#8 20-04-2009 14:28:46

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] requete SQL format 2

une variable pour le code SQL, comme dans ton 1er exemple :

Code: pb

sqlupdate= "insert into "+table_name+ "(code_jou, cpt_gnl, credit, c_anal, dat_oper, debit , n_ordre, n_piece, mois) values (?,?, ?,?, ?,?,?, ?,?);"  
prepare SQLSA  from  sqlupdate;

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#9 20-04-2009 14:33:46

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: [RESOLU] requete SQL format 2

quand je fais ça il me dort syntax error au niveau de la2eme ligne c'est pour ça au départ j'ai mis entre guillemets le sqlupdate!!

Hors ligne

 

#10 20-04-2009 14:47:07

disneb  
Membre completement Geek
Lieu: Bejaia
Date d'inscription: 16-01-2008
Messages: 118
Pépites: 1,622
Banque: 0

Re: [RESOLU] requete SQL format 2

ok les gars je vous l'accorde je suis vraiment à la traine pour ce qui est de PB
fallait mettre

Code: pb

prepare SQLSA  from  :sqlupdate;

       :sqlupdate
n'empêche que aucun de vous n'a mis les deux points

merci pour le coup de pouce

Dernière modification par disneb (20-04-2009 14:49:44)

Hors ligne

 

#11 20-04-2009 15:03:08

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] requete SQL format 2

disneb a écrit:

n'empêche que aucun de vous n'a mis les deux points

copier-coller intempestif


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22