J'ai créé une fonction dans PowerBuilder.NET Hello World. Le projet compilé en Helloworld.dll, généré en C# à partir de l'utilitaire PowerBuilder. À l'intérieur de Helloworld, j'ai créé le non-visuel n_cst_helloworld. À l'intérieur du non-visuel, j'ai créé la fonction d'objet of_hello(). Voici les problèmes que j'ai rencontrés en essayant d'accéder à Helloworld.n_cst_helloworld.of_hello() dans une fonction externe sur SQL Anywhere.
La fonction externe utilise CLR et est appelée en ce moment dans Interactive SQL.
Voici le script que j'essaie de lancer dans iSQL (via ASA) :
ALTER PROCEDURE "DBA"."ext_helloworld"()
EXTERNAL NAME
'helloworld.dll::Helloworld.n_cst_helloworld.of_hello( )'
LANGUAGE CLR
Ensuite, j'utilise ce qui suit dans iSQL :
START EXTERNAL ENVIRONMENT CLR;
CALL ext_helloworld();
Qui me donne ensuite l'erreur suivante :
Impossible d'exécuter l'instruction. La procédure 'ext_helloworld' s'est terminée avec une exception non gérée 'La méthode 'Helloworld.n_cst_helloworld.of_hello' est introuvable.'
SQLCODE = -91
Donc, je sais que j'ai l'objet dans le bon dossier, et enregistré via REGASM et tout ça, sinon cela me donnerait l'erreur "objet introuvable" que j'avais déjà vue.
Je suis confus car il semble que SQL Anywhere sait que l'objet n_cst_helloworld existe, mais il ne reconnaît pas les méthodes générées à l'aide de l'utilitaire PowerBuilder.NET. Je ne sais pas comment procéder pour pouvoir utiliser cette méthode via ASA.
Actuellement j'utilise ASA 12, PB12, PB.NET et ai à la fois 3.5 et 4.0 installés.