|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2008 Messages : 119 ![]() |
Bonne rencontre,
J’ai l’habitude de travailler avec des PS en MSSQL mais pour l’un de mes projets, je dois mettre en place un Hyperfile client/server pour limiter les coûts. Soit, je désire donc comme à chaque fois externaliser toutes mes requêtes SQL (J’ai bossé dans un endroit, il était interdit d’écrire du SQL dans les applications) et là je suis un peu dépité. A première vue, il n’y pas moyen d’écrire directement les PS dans le SGBD… Mouais, je continue ma recherche et je vois que je dois me taper du Wlangage (pas du sql) dans les PS sous l’analyse. Je n’aime pas trop mais ce n’est pas trop grave en soi… Je fais quelques tests très simple et tout va bien jusqu’au moment ou je me dis, je vais simplement simuler un SELECT * FROM Client. Je me retrouve donc avec N enregistrement. Comment dois-je faire pour renvoyer mes N enregistrements à mon application pour l’afficher dans une table ? J’ai fais quelques recherche sur le web mais je n’ai pas trouvé. Ma PS doit renvoyer une source donnée ? Elle va encore exister à la sortie de la PS ?? Je dois avouer que je n’en sais trop rien… D’avance, merci pour votre aide. Raphaël. PS : Je suis en windev 16 |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Qu'est ce qui vous fait dire que HF C/S est la bonne solution ?
Il y a MS SQL Server Express qui monte jusqu'à 10go de données. Sinon vous avez POSTGRE en vraiment gratuit qui supporte beaucoup de fonctionnalités des gros SGBD commerciaux et a une fiabilité plus éprouvée que celle de HF C/S. Vu votre habitude en SQL, je déconseille l'utilisation de HF C/S. |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Nicolas JeanneauDéveloppeur informatique Inscription : octobre 2010 Messages : 638 ![]() |
Bonjour,
même mySql peut-être une solution gratuite pas trop mal. Sinon pour revenir au sujet, il faut construire une chaine avec la requête et utiliser les fonctions hexecutesql. Exemple : Code :
Code :
HLitPremier("MaRequête", hSansRafraîchir) Nicolas |
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : juillet 2002 Messages : 1 216 ![]() |
Bonjour
Citation:
Pour une utilisation personnelle tu peux l'utiliser gratuitement, même une entreprise d'ailleurs. Par contre dès que tu dois diffuser la dll de MySql avec ton application tu dois acheter les licences. Pour un client nous avons du acheter 600 licences, en négociant les prix à l'époque on avait obtenu la licence à 90 € pièce mais uniquement avec le moteur MyISAM (pas de FK, pas de transaction, pas de blocage ...) Maintenant les conditions ont surement changées depuis, mais vu qui possède MySql (Oracle) il y a peu de chance qu'il devienne gratuit @vmolines : salut, tu confirmes pour PostgreSQL ? totalement gratuit en diffusion ? |
|
|
|
10
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Salut,
Je confirme pour PostgreSQL ! Citation:
J'ai volontairement omis MySQL dans les SGBD recommandés et tu fais bien de mentionner son coût que beaucoup oublient. Moins pire que HF C/S certes ; mais si on a le choix, autant s'orienter vers un truc vraiment sympa. Allez un peu de lecture : SQLPro retaille un costume à MySQL SQLPro toujours : Petit comparatif de performances sur un exemple d'agrégat d'intervalles (MSSQL, MYSQL, PostgreSQL) |
|
|
|
00
|
|
|
#6 | ||||
|
Nouveau Membre du Club
![]() Inscription : décembre 2008 Messages : 119 ![]() |
Bonne rencontre,
Je me suis sans doute mal exprimé, le but n’est pas de savoir comment faire une requête ou exploité mes résultats. Le but est de savoir comment récupérer mes résultats de ma PS à ma fenêtre. Imaginons que j’ai une fenêtre « clients » avec une simple table « maTable ». Dans ma procédure stockée, j’ai un truc du genre. Code :
Code :
Je dois renvoyer quoi ? Une source de données temporaire ?! Sauf qu’une source de données est directement détruite à la fermeture du traitement où la source de données à été déclarée. http://www.pcsoft-windev-webdev.com/..._Stockees.html J’ai été voir cette vidéo mais on n’a qu’un résultat dans ce cas ce qui ne m’aide pas spécialement. Maintenant pour en venir à la question de HF C/S. D’habitude, on travail avec du MS SQL Server mais pour limiter le cout et aussi pour découvrir un nouveau produit, on a pensé à HF C/S histoire de voir ce que ça valait vraiment. C’est vrai qu’il y a la version MSSQL express pourrait répondre aux besoins du client et ça m’éviterait d’essayer de comprendre le truc du dessus. C’est à réfléchir vu que rien n’est encore fait mis à part l’analyse et le prototypage horizontal. PostgreSQL, je ne connais que de nom. Quant à MySQL... C'est un vrai SGBD ? Il y a encore du boulot quand même. Néanmoins, j’aimerais quand même bien comprendre le fonctionnement des PS de windev avec HF C/S. Je serais frustrer de rester sur une incompréhension. D’avance, merci pour votre aide. Raphaël. |
||||
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Je n'ai jamais eu à le faire mais je pense qu'un :
Code :
serait une syntaxe potentiellement valable si c'était supporté (à tester). ou Code :
|
||||
|
|
00
|
|
|
#8 | |
|
Nouveau Membre du Club
![]() Inscription : décembre 2008 Messages : 119 ![]() |
J'ai déjà fait des PS MSSQL avec Windev donc ça devrait aller de ce côté là.
Citation:
J'ai fait quelques recherches sur le forum mais sans succès. Du moins les posts sont un peu vieux comme celui-ci : http://www.developpez.net/forums/d50...-db-hyperfile/ Il me semblait qu'il y a avait un organisme indépendant qui réalisait des tests mais je reviens pas sur le nom. |
|
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Arnaud BenhamdineDirecteur technique Inscription : octobre 2004 Messages : 157 ![]() |
Bonjour,
Pour compléter : MS SQL Server 2008 R2 Express est gratuit en diffusion et seulement limité à 10 Go par base. En revanche, il y a une limite de 1 Go de RAM de cache. Je confirme que postgres est totalement gratuit en diffusion, très performant et côté fonctionnalités, postgres est devant MS SQL Express qui semble bridé sur certaines fonctionnalités un peu pointues, par exemple le partitionnement de tables qui n'est pas dans la version Express mais uniquement dans la version Enterprise (près de 10 000 euros/serveur !). Cotés benchs, je n'en connais pas avec HF C/S. C'est effectivement un manque. Avant d'utiliser HF C/S, je te conseille de lire sur les forums les limites de HF C/S en ce qui concerne les jointures externes. Cdlt, Arnaud. |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Inscription : mars 2002 Messages : 825 ![]() |
Bonjour Raphael1980,
Je pense que tu te trompes de voie. Le monde Windev n'est pas conçu comme les autres. La base de données était historiquement locale, ou réseau, mais avec des parcours contrôles par le programme. Les procédures stockées ne sont arrivées qu'après. Elles n'étaient pas là pour faire ce que tu veux. En résumé, la procédure stockée (en Windev!) ne sert qu'à te déporter une partie du traitement. Très pratique quand tu es sur un réseau un peu lent, ou des configs un peu légères (mes accès à partir d'un PDA sont faites comme ça par exemple). Par contre, le HExecuteRequeteSQL, garde le en appel à partir de l'appli, tu y gagnera en vélocité. Pour ce qui est de faire les modifs de procédures stockées dans le projet, et pas dans le SGBD, encore une fois ça vient de la conception de Windev. EDIT : Pour les limitations dues aux jointures externes dont parle Arnaud B. dans le post juste avant moi, je dirais qu'elles fonctionnent plutôt bien maintenant. Par contre le moteur contient toujours quelques bugs, et quand peu de gens les rencontrent, PCSoft n'est pas pressé de le corriger. Je leur ai personnellement envoyé plusieurs fois depuis le 3 novembre 2008 un bug sur un SELECT SUM(MonChamp) FROM MaTable WHERE UneConditionBienParticulière qui me renvoie DEUX lignes... ! Incroyable mais jamais réglé) |
|
|
00
|
|
|
#11 | |
|
Nouveau Membre du Club
![]() Inscription : décembre 2008 Messages : 119 ![]() |
Bonne rencontre,
Merci à vous tous pour vos retours qui m'ont agréablement guidé. Citation:
Je vais donc rester sur des outils que je connais comme MS-SQL. Postgres peut m'intéresser mais sans doute plus sur un projet perso histoire de tester un peu ce SGBD. Amicalement, Raphaël. |
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Avec HF, j'ai déjà eu droit à un COUNT qui ne renvoyait aucune ligne si ça peut vous rassurer
|
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Arnaud BenhamdineDirecteur technique Inscription : octobre 2004 Messages : 157 ![]() |
Pour les jointures externes, je n'irai pas jusqu'à dire qu'elles fonctionnent bien.
Le gros problème est que toute condition mise dans la jointure (T1 LEFT OUTER JOIN T2 ON (T1.ID2 = T2.ID2 AND maconditionsurT2)) sera interprétée comme une condition directement dans la clause WHERE. Ce qui n'est pas conforme à la norme SQL et n'est évidemment pas le cas dans TOUS les autres SGBD du marché. Cdlt, Arnaud. |
|
|
00
|
|
|
#14 | |||||||||
|
Membre confirmé
![]() Arnaud BenhamdineDirecteur technique Inscription : octobre 2004 Messages : 157 ![]() |
Ne serait-il pas possible de faire renvoyer une source de données par la PS :
Code :
Code :
Si quelqu'un a testé... Ceci dit, il est vrai que si une PS se contente de renvoyer une source de données, autant exécuter une requete depuis le client... Cdlt, Arnaud. Citation:
|
|||||||||
|
|
00
|
|
|
#15 |
|
Membre émérite
![]() Inscription : mars 2002 Messages : 825 ![]() |
Ah, et pendant que tu y es, renseigne toi sur les forums et partout où tu peux :
La différence entre les ordres Hxxx et les SQLxxx. Comme tu as l'air d'être au début du développement, c'est le moment où jamais de le faire. Le but est de t'éviter de programmer avec des ordres qui fichent la pagaille dans le moteur de la base. Mes compétences en moteur ne sont pas assez élevées pour t'expliquer précisément pourquoi, mais les gens un peu sérieux qui ont essayé les deux pistes semblent privilégier les ordres SQLxxx : Une histoire de pointeurs sur la base de données. Par contre, je t'avertis de suite, les ordres SQL sont moins biens dé-servis dans Windev, et il te faudra tout coder à la main. De plus, tu auras moins de monde qui saura te répondre sur les forums. Voila, j'espère que ça t'aidera dans tes choix. |
|
|
00
|
|
|
#16 | ||
|
Membre actif
![]() Jean-François RiouxMain frame, Unix, Windows, AS400 Inscription : mars 2011 Messages : 110 ![]() |
Je confirme les suggestions. J'ajoute ma griffe à cette discussions.
Je fais tout en SQL pour les traitements SELECT, UPDATE, DELETE, INSERT sur la BD. Je suis en WIN16 avec la BD HF C/S. Mon approche est très prudente et je la recommande (même avec les autres technologies). J'utilise un tableau à 3 dimensions dont j'insère les rubriques à traiter, les valeurs trouvées et le type de rubrique. Je remplis une table (sur fenêtre) avec ce tableau. Je ne fais pas confiance à l'existence de l'intégrité référentielle et normalisation... Ces concepts sont biens définis mais souvent mal programmés... Je préfère sélectionner manuellement. Tu verras qu'avec un kit d'outils bien montés, tu pourras devenir très efficace. Voici mon code Bon Dev Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com