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 18-03-2008 06:37:57

b2oba  
Membre Geek
Date d'inscription: 03-12-2007
Messages: 46
Pépites: 240
Banque: 0

[RESOLU] Data Window Error -> Select error : Column lists do not match

Bonjour Cher tous,

En fait j'ai un problème, j'ai 2 datawindow en sharedata, je voudrais ajouté un champs calculé directement dans la requete SQL (à partir de son Datasource) d'une des datawindow comme ceci:
select
date_col1,
date_col2,
col3,
...
datediff(minute,date_col1, date_col2) as durée
from Paiement

Et ca me donne l'erreur suivante : Select error : Column lists do not match

Puis-je esperer quelque chose de votre part?

D'avance je vous dis merci

Dernière modification par b2oba (19-03-2008 13:49:01)

Hors ligne

 

#2 18-03-2008 07:01:41

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

Re: [RESOLU] Data Window Error -> Select error : Column lists do not match

Bonjour,

essaye dbparm.staticbind=1
ou alors un cast de ta donnée pour la forcer en numérique : to_number( xxxx )
d'ailleurs j'éviterai un alias avec un accent (durée)

NB : minute est une colonne de la base ?


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

Hors ligne

 

#3 18-03-2008 07:07:08

b2oba  
Membre Geek
Date d'inscription: 03-12-2007
Messages: 46
Pépites: 240
Banque: 0

Re: [RESOLU] Data Window Error -> Select error : Column lists do not match

Non minute est une constante SQL qui te retourne la différence de deux dates en minute.
Et aussi durée n'as pas d'acces c'est plus tôt duree

Merci pour ton attention.

Hors ligne

 

#4 18-03-2008 08:14:26

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Data Window Error -> Select error : Column lists do not match

b2oba a écrit:

Bonjour Cher tous,

En fait j'ai un problème, j'ai 2 datawindow en sharedata, je voudrais ajouté un champs calculé directement dans la requete SQL (à partir de son Datasource) d'une des datawindow comme ceci:
select
date_col1,
date_col2,
col3,
...
datediff(minute,date_col1, date_col2) as durée
from Paiement

Et ca me donne l'erreur suivante : Select error : Column lists do not match

Pour que ton sharedata marche, il faut impérativement que les deux SELECT de tes datawindows soient identiques (Les clauses FROM et WHERE peuvent être différentes): Il faut donc que dans l'autre datawindow tu rajoutes une pseudo-colonne "durée" dans ton select pour que cela fonctionne (Et comme le dit ErAsORz, évites les accents dans les alias)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 18-03-2008 09:45:33

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: [RESOLU] Data Window Error -> Select error : Column lists do not match

Bonjour,

Un petit rappel de la doc PB :

Usage

The columns must be the same for the DataWindow objects in the primary and secondary DataWindow controls, but the SELECT statements may be different. For example, you could share data between DataWindow objects with these SELECT statements:

SELECT dept_id from dept

SELECT dept_id from dept where dept_id = 200

SELECT dept_id from employee

WHERE clause in secondary has no effect      The WHERE clause in the DataWindow object in the secondary DataWindow control has no effect on the number of rows returned. The number of rows returned to both DataWindow controls is determined by the WHERE clause in the primary DataWindow object.
You could also share data with a DataWindow object that has an external data source and columns defined to be like the columns in the primary. To share data between a primary DataWindow and more than one secondary DataWindow control, call ShareData for each secondary DataWindow control.


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#6 18-03-2008 13:05:11

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] Data Window Error -> Select error : Column lists do not match

Dans le cas présent, la fonction datediff retourne un entier long (le nombre de minutes entre les deux dates)
Donc si dans ta deuxième DW tu ne souhaites pas faire appel à la fonction une deuxième fois, il faut écrire (avec un alias sans accent comme préconiser plus haut)

Code: sql

select 
date_col1,
date_col2,
col3,
...
0 as duree
from Paiement


et surtout pas

Code: sql

select 
date_col1,
date_col2,
col3,
...
'' as duree
from Paiement


car sinon les types de colonne ne correspondent pas et le share plante joyeusement.
Cela est valable quelque soit la fonction utilisée dans l'une ou l'autre des DW d'un shared. L'erreur que je rencontre le plus c'est lorsqu'une des sources retourne un nombre à décimal et l'autre est initialisée avec 0 donc un entier (dans ce cas le plus simple est de mettre 0.0 ou utiliser les fonctions de conversion du SGBD pour transformer l'entier 0 en décimal)


Tu dois donc tu peux (Kant)

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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22