Categorie : Développement

27 oct

2011

Article déposé par Thomas dans la catégorie developpement

WinDev et SQL Server sans accès natif

Depuis la version 2008 R2, SQL Server est devenu aussi intéressant pour les petits budgets que pour les gros. Dans la version Express, qui est gratuite et librement distribuable, les bases ne sont plus limitées à 4 Go mais à 10 Go, et il est toujours possible de créer une infinité de bases pour contourner cette limitation.

Le seul problème, c’est que visiblement il faut acheter l’option « accès natif » de WinDev pour pouvoir en tirer le meilleur parti : performances, facilités syntaxiques, utilisation de procédures stockées, variables etc.

Alors, est-il possible d’avoir le beurre et l’argent du beurre, accéder à SQL Server via OLE DB, avoir des performances, une souplesse et une clarté de code comparables à l’accès natif ? Pour nous la réponse a été oui, car on a pu développer un projet d’envergure pour lequel on a commencé par mettre en place notre « boîte à outil » OLE DB/SQL Server.

Sans pouvoir rentrer dans les détails, car il me faudrait une centaine de pages pour ça, voici ce à quoi nous avons pu arriver, les problèmes qu’il a fallu résoudre et quelques pistes pour vous aider à faire de même.

lire la suite de l’article

27 oct

2011

Article déposé par Thibaud dans la catégorie developpement

[Astuce WinDev] Instruction « FIN: »

Trop souvent oubliée,  « l’instruction « FIN: » permet de définir un code qui sera exécuté systématiquement à la fin de l’exécution d’un traitement. Ce code sera exécuté même si la sortie du traitement est réalisée avec le mot-clé RETOUR ou le mot-clé RENVOYER. »

Idéal pour des fonctions qui doivent être exécutées après chaque instruction de sortie.
Vous pouvez par exemple mettre les fonctions Sablier(Faux)HFerme()fFerme(), et bien d’autres, vous assurant une exécution quelle que soit l’issue de votre traitement, évitant ainsi les répétitions de code, améliorant la clarté de celui-ci, et facilitant donc d’éventuelles modifications.


ATTENTION
 : Le code suivant l’instruction FIN: ne sera pas exécuté si vous faites appel aux fonctions RepriseSaisie() ou Ferme(). De même si une exception se déclenche.
C’est pourquoi il est préférable d’utiliser la fonction EcranPremier() suivi d’une instruction de sortie (RETOUR ou RENVOYER).

Soyez vigilant
 : Si vous remplacez la fonction RepriseSaisie() se trouvant dans une fonction (ou procédure) par les deux lignes de code ci-dessus, le code situé après l’appel de la fonction sera exécuté. Pour éviter ceci, utiliser la valeur de retour de la fonction pour savoir s’il convient de continuer le traitement ou non.