Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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