Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Et oui , c'est encore moi ! lol , j'en ai pas finit avec ce forum
dans une fenetre, j'ai 1 liste déroulante qui m'indique des caracteristiques.. et entre autre , une datawindow dans laquelle je voudrais afficher les données selon ce qui se trouve dans la liste.
j'ai donc fait ceci :
// déclarations String ls_ddlb, ls_nom // récup texte listbox ls_ddlb = ddlb_1.Text // script valable si la requête ne renvoit qu'une ligne : select nom into :ls_nom from competence where caracteristique = :ls_ddlb ;
et ça,je l'ais mis dans la datawindows, j'aimerais faire la meme requete mais qui renvoit plusieurs ligne .. et meme avec une ligne , elle ne marche pas..faut-il écrire ca dans la datawindow?
Hors ligne
tu as mis quoi exactement dans la DW?
Hors ligne
Bonjour, le mieux serait plutôt de faire une datawindow qui récupère la totalité des enregistrements de ta table:
SELECT nom, caracteristique FROM competence;
Puis de filtrer en fonction de ce que tu as de sélectionné dans ta liste déroulante par les fonctions SetFilter et Filter:
//Déclarations String ls_ddlb //Récupération texte listbox ls_ddlb = ddlb_1.Text //RAZ filtre précédent: dw_1.SetFilter("") dw_1.Filter() //Filtre courant: dw_1.SetFilter("caracteristique=" + ls_ddlb ) dw_1.Filter()
Ca limitera les accès au serveur et donc le trafic réseau...
Hors ligne
je viens d'essayer et il me met une erreur de synthaxe pour le select ^^ :s
Hors ligne
Hors ligne
heu nan ca me dit pareil oO
Hors ligne
C'est quoi le descriptif de ta table "competence"?
Tu mets bien ce script dans le datasource de ta datawindow?
Hors ligne
ben , quand je double clic sur la datawindow, je met le script dedans ..faut pas le mettre la ?
Hors ligne
Non, il faut le mettre dans le datasoure de ton dataobject: Tu fais
clique droit => Modify datawindow sur ta fenêtre, et tu cliques sur l'icône "datasource"
=> Tu mets le script dans l'éditeur qui s'ouvre et tu sauvegardes (Par contre, il faut enlever
le ";").
Bien entendu, il faut que tu sois connecté à ta base de donnée pour qu'il retrouve la table.
Hors ligne
moi, je dis qu'il faut que tu relises comme il le faut les cours du forum...
c'est la meme technique, que soit sur pb5 ou pb10...
ce que tu veux faire, c'est dans les cours.... à ce qu'il me semble...
tout est la.
Hors ligne
certains membres de ce forum ont debuté en septembre, et sont passés par la aussi...
ils se sont basés sur les cours et exercices donnés.
il y a des etapes qu'on ne peut pas sauter, surtout en pb.
apres, tu risques de te perdre...
heureusement qu'il y a des membres et des modos compréhensifs...
Hors ligne
voila j'ai fait ce que tu m'as dit , mais quand le lance la fenetre en run/preview, il y a rien dans la datawindows or quand je double clic sur la dataobjet qui contient la requete, il m'affiche les résultats.. Dans la fenetre ou se trouve la datawindow, faut-il mettre une ou plusieur logne pour se connecter a la base?
Hors ligne
Il te faut définir un objet transactionnel (Par défaut SQLCA), puis tu mets le script suivant:
//Assignation de l'objet transactionnel dw_1.SetTransObject(SQLCA) //Récupération des données dw_1.Retrieve()
Mais je te conseille de te plonger dans la doc PB: C'est vraiment le B-A BA
Hors ligne
B-A BA BA BIBEL hum dsl
Hors ligne
oui j'ai déja regardé les cours present sur le forum..mais je retrouve pas les points ou je bloque.
j'ai vu le cour DATABASE.mht et Sqlplora :s
je vais aller me plonger dans la GROSSE doc de pb :s lol merci quand meme (ps: ca marche tjrs pas foon) lol mais je vais régler ca :x
Hors ligne
celui la est tres complet...
http://pbadonf.fr/forum/viewtopic.php?id=11
il suffit que tu l'adaptes par rapport à ta base de données...
il y a une etape à suivre, avec construction du projet... de A à Z
et c'est un cours qu'on donnait en formation.
Hors ligne
Ok.
AMHA, ça doit pas être grand'chose (genre le script n'est pas mis dans le bon événement), mais je te laisse regarder: Je peux difficilement t'aider plus sans que tu es regardé cette fameuse doc. Il y a beaucoup d'exemples de codes qui pourront t'aider.
Hors ligne
merci pour le cour pick , thezerg, ton lien est périmé oO
Hors ligne
Bonjour,
tu as aussi la technique du curseur dynamique,
cela te remonte les données d'une requète ligne par ligne;
et te permet de les traiter les unes après les autres :
string cs_nature,cs_nun_camp,cs_lib_camp,requete int ci_nb_camp,ci_i SELECT COUNT(DISTINCT "TRANSMISSION"."NUMERO_OFF_CAMP") INTO :ci_nb_camp FROM "TRANSMISSION", "CAMPAGNES" WHERE "TRANSMISSION"."ORIGINE" = 5; requete = 'SELECT DISTINCT "TRANSMISSION"."NUMERO_OFF_CAMP", "CAMPAGNES"."LIBELLECAMPAGNE"' & + ' FROM "TRANSMISSION","CAMPAGNES"' & + ' WHERE "TRANSMISSION"."ORIGINE" = 5' declare temp_cur dynamic cursor for sqlsa; prepare sqlsa from :requete; OPEN dynamic temp_cur; if sqlca.sqlcode <> 0 then messagebox("Erreur d'accés DB", "Une erreur est survenue lors de~rl'accès à la table" + & " CAMPAGNES~r" + sqlca.SQLErrText) return else if ci_nb_camp > 0 then for ci_i = 1 to ci_nb_camp FETCH temp_cur INTO :cs_nun_camp, :cs_lib_camp; ddlb_num_camp.AddItem(cs_nun_camp) ddlb_lib_camp.AddItem(cs_lib_camp) next end if end if close temp_cur;
Hors ligne
thezerg a écrit:
B-A BA BA BIBEL hum dsl
Hum hum je ne connais pas cette personne....je ne travaille pas avec elle..Il n'y a que lui qui rit...KIRI KIRI KIRI!
Hors ligne
Désolé, moi pas savoir !
Hors ligne