Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
J'ai encore une extension sous le coude mais je ne sais pas ça peut intéresser quelqu'un
[UPDATE] : ça y est c'est en ligne : chercher PbniCW sur ma page PB
Au menu :
- cwGetField / cwSetField : accès en lecture / écriture à n'importe quelle propriété d'un objet (par exemple x ou y d'un bouton, hauteur de liste ou fenêtre mais ça peut être aussi une variable membre d'un userobject. Par contre on ne peut pas accéder à des méthodes. Pour ceux qui se demandent à quoi ça peut servir : au lieu de devoir instancier un objet du bon type pour pouvoir interroger la propriété, ici il suffit de faire un getfield(powerobject, fieldname) et on reçoit la valeur de la propriété (dans un any)
- RetrieveVaArgs : permet de faire un retrieve() sur un datastore ou datawindow en passant les arguments dans un tableau de any, quand on fait du code dynamique et qu'on sait qu'une datawindow pourra être appelée avec un nombre d'arguments variables c'est très pratique, ça évite de devoir écrire plusieurs appels différents à retrieve (avec 1 argument, 2, 3, ... on finit toujours par tomber sur un cas non prévu)
- GetVersionInfoString, GetVersionInfoFixed accès en lecture à la ressource VersionInfo des exécutables et dll windows pour les descriptions et numéros de version (permet de pouvoir lire le mêmes infos que l'onglet "version" des propriétés de fichier dans explorer)
- opérations de bits AND, OR, XOR, NOT, rotation gauche et droite codée en C, pas avec des constructions / parcours de tableaux
- conversion ulong -> chaîne hexa ou octale
- enfin, un objet uo_transaction qui, utilisé à la place de l'objet de transaction habituel, permet de recevoir des notifications depuis la base de donnée à la manière d'une callback. Typiquement ça sert à indiquer une progression lors de l'exécution d'une procédure stockée. C'est spécifique pour une base ASA et cette partie a été compilée grâce au SDK fourni avec ASA / Sybase central. Je ne peux pas en distribuer le code par contre ceux qui ont Adaptive Server Anywhere peuvent recompiler.
Dernière modification par seki (17-05-2010 22:00:01)
Hors ligne
pour tous ces utilitaires
0.000 pépites
Hors ligne
Merci, mais celle-ci n'est pas encore en ligne.
Je demandais seulement si ça intéresse quelqu'un
Bon, apparemment il y a preneur ? Faut que je voie avec mon collègue si ont met en ligne le module avec ou sans l'objet uo_transaction (à cause des soucis de license)
Hors ligne
Je suis effectivement preneur.
Mais ma réponse était aussi liée à tes trois autres topics
Hors ligne
Salut Seki, je suis intéressé par GetVersionInfoString.
Hors ligne
Ayé.
Hors ligne
Hors ligne
Hors ligne
Hors ligne
Je liste sur la page de download les 2 bugs connus mais tout rapport de bug est bienvenu.
Et puis ça manque de documentation et de programme de test (au contraire de mes autres pbni).
Il faudrait que je revoie le programme de test (qui est resté en pb10 il me semble).
Aussi si vous avez des questions, n'hésitez pas à demander.
En retour, j'espère que vous me direz quelles sont les fonctions qui vous sont utiles
Hors ligne
seki a écrit:
En retour, j'espère que vous me direz quelles sont les fonctions qui vous sont utiles
Justement, tu l'as en PB 10 ?
Hors ligne
shahin a écrit:
Justement, tu l'as en PB 10 ?
Tu as essayé d'utiliser les PBX/PBD directement ?
Éventuellement juste le PBX, au besoin le PBD peut se refaire avec
pbx2pbd100 pbnicw.pbd pbnicw.pbx
(pbx2pbd100 est dans le répertoire program files\sybase\shared\powerbuilder)
Si ça ne fonctionne pas, je peux essayer de recompiler, sous la main, j'ai
- PB 10.0.??
- PB 10.2.1.9859
- PB 10.5.2.7826
- PB 11.5.1.4608 (j'ai des nouveaux EBF mais pas encore installés)
Hors ligne
J'ai un petit problème sur le source je ne trouve pas où est défini an_sql_code.
Est ce que tu pourrais me dire d'où ça viens seki?
Hors ligne
Van a écrit:
J'ai un petit problème sur le source je ne trouve pas où est défini an_sql_code.
Est ce que tu pourrais me dire d'où ça viens seki?
Tu peux me remettre dans le contexte ? (direct au saut du lit, je pourrais dire d'après nos conventions de nommage usuelles que an_sql_code pourrait être un paramètre de la fonction ou de l’événement dans lequel tu te trouves)
Hors ligne
Ouyi désolé c'est vrai que j'ai pas était des plus clair ^^'.
Je débute dans le C++ et j'ai plus toucher à VS depuis mes étude avec le C#, du coup je nage un peu mais je commence à trouver mes repère.
J'ai donc ajouter les dossier SDK de PB12.0 et sql anywhere dans c/c+/ligne de commande pour que le projet trouve les header qui vont bien.
Mais un des poblème de génération que j'ai c'est le an_sql_code dans PbniTransaction. C'est un des type de paramétres pour les méthodes Dispatch et NotifyMessage.
Hors ligne
Van a écrit:
...
Mais un des poblème de génération que j'ai c'est le an_sql_code dans PbniTransaction. C'est un des type de paramétres pour les méthodes Dispatch et NotifyMessage.
Soit tu n'as pas besoin d'utiliser ASA + la notification de messages du moteur et tu retires la définition de USE_ASA_ODBC dans ton projet, soit tu regardes pourquoi an_sql_code n'est pas définit, normalement il provient de :
PbniTransaction.h > extfnapi.h > sqldef.h > sqlca.h : typedef a_sql_int32 an_sql_code;
EDIT: si tu rencontres un message indiquant que la librairie dblibtm.lib est absente, c'est que l'architecture des répertoires de sql anywhere à changée (entre le 9.0.2.2451 et 9.0.2.3951) : il faut indiquer le dossier lib [ASA INSTALL]\win32\lib dans les propriétés de ton projet.
Hors ligne
Pour le coup j'aurais pas besoin de ASA mais j'aime bien bidouillé. Et éventuellement fournir la version pb12.1 comme je l'ai fait pour fastfuncs.
En fouillant il n'y avais pas de référence à sqldef.h dans extfnapi.h
J'ai fait un include direct de sqlca.h dans lePbniTransaction.h et ça passe.
Pour le problème de dblibtm.lib je suis effectivement tombé dessus mais le chemin lib n'était pas dans le format que tu a mis.
C'était un chemin "C:\Program Files (x86)\SQL Anywhere 11\SDK\Lib" dans lequel on trouve deux dossier : un pour X64 et un autre pour X86.
Me voilà maintenant sur deux avertissements TargetPath et un erreur "MSB3073: La commande "pbx2pbd115 PbniCW.pbd PbniCW.dll :VCEnd" s'est arrêtée avec le code 9009." que je regarderai plus tard. J'ai pas le temps là.
Mais ça avance.
Hors ligne
Van a écrit:
La commande "pbx2pbd115 PbniCW.pbd PbniCW.dll :VCEnd" s'est arrêtée avec le code 9009."
la commande pbx2pbd sert à fabriquer un pbd contenant les déclarations des objets et fonctions fournis dans un pbx (qui n'est rien de plus qu'une dll avec l'extension "pbx"). Ce pbd est ensuite ajouté dans la liste des librairies d'un projet pour pouvoir être appelé. Je sais qu'il est possible d'ajouter le pbx directement dans le projet et que pb arrive à se débrouiller.
Bizarre, Là on dirait que ton projet fabrique un "pbnicw.dll" alors que normalement c'est "pbnbicw.pbx". Le problème ne viendrait pas d'un mauvais nom dans les paramètres du linker ?
Hors ligne
J'ai pas encore regardais où se trouvais lelien vers pbx2pbd.
ton projet pointais vers la version 115 que je n'ai pas donc forcément ça marche moins bien ^^". Je regarderais pour changer ça plus tard.
Hors ligne
Avec chaque version de PB il y a une commande pbx2pbd différente (p.ex: pbx2pbd100, pbx2pbd115, ...) si tu es avec PB 12.1, je présume que tu dois avoir un pbx2pbd120 (non testé).
Pour d'autres pbni, j'ai modifié le projet pour avoir des targets différentes PB10 / PB11 / PB12, je devrais faire ça aussi pour pbnicw mais on y touche beaucoup moins souvent.
Au fait, Xlat me faisait remarquer que tu tentes l'aventure avec ASA11... c'est totalement non testé, à l'époque où on écrit ça on n'avait que la version 9. Je ne dis pas que ça ne fonctionnera forcément pas, juste que là tu explores l'inconnu
Hors ligne
Comme je l'ai dis je n'utiliserai pas ASA, et pour tout dire j'aurais pas vraiment le temps de me lancer dans des tests sur ce point... Je regarderais peut être plus tard si j'ai le temps comment se servir de ASA et en faire des tests.
Le but pour moi c'est en parti d'apprivoisé VS et de réussir à le faire compilé sans erreur (et dans son intégralité) dans un premier temps.
Tester ce qui m'intéresse retreiveVarArg en l'occurence.
Et faire un retour du source version PB12 qui pourrais servir à d'autres (sur GitHub si vous mettais vos sources dessus comme pour le dwDebugMachine)
Dernière modification par Van (11-06-2013 14:05:23)
Hors ligne