Précédent   Forum des professionnels en informatique > Environnements de développement > WinDev > HyperFileSQL
HyperFileSQL HyperFileSQL est un système de gestion de base de données relationnel exploité par les logiciels WinDev, WebDev et WinDev Mobile.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 10h57   #1
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 119
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2008
Messages : 119
Points : 35
Points : 35
Par défaut Procédure stockée avec n enregistrements

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
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h22   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
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.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 16h48   #3
Membre Expert
 
Homme Nicolas Jeanneau
Développeur informatique
Inscription : octobre 2010
Messages : 638
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Jeanneau
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2010
Messages : 638
Points : 1 020
Points : 1 020
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 :
1
2
3
4
chaineRequete est une chaine
 
chaineRequete = "SELECT * FROM Client"
HExécuteRequêteSQL("MaRequete",hRequêteSansCorrection,chaineRequete)
Bien sûr il faut ouvrir une connexion avant. Ensuite on peut utiliser les fonctions HLit, HlitPremier etc ... pour parcourir le résultat de la requête.

Code :
HLitPremier("MaRequête", hSansRafraîchir)
à bientôt,

Nicolas
Nicolas_Jeanneau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 09h21   #4
Membre Expert
 
Inscription : juillet 2002
Messages : 1 216
Détails du profil
Informations personnelles :
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : juillet 2002
Messages : 1 216
Points : 2 030
Points : 2 030
Bonjour
Citation:
Envoyé par Nicolas_Jeanneau
même mySql peut-être une solution gratuite pas trop mal
MySql est très bien ... mais pas du tout gratuit

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 ?
hpascal est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/06/2011, 11h07   #5
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Salut,

Je confirme pour PostgreSQL !

Citation:
Q: How is PostgreSQL licensed? How much does it cost?
A: PostgreSQL is released under the OSI-approved PostgreSQL License. There is no fee, even for use in commercial software products. Please see http://www.postgresql.org/about/licence
Source : FAQ PostgreSQL

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)
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 11h50   #6
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 119
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2008
Messages : 119
Points : 35
Points : 35
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 :
1
2
3
HExécuteRequête(REQ_test)
//REQ_test est une requête stockée.
// Je n’arrive pas à déterminer le traitement qui va me renvoyer mes N enregistrement.
Dans le code de ma fenêtre, je veux récupérer les résultats que j’ai obtenus via ma procédure stockée.

Code :
1
2
HExécuteProcédure(ConnexionHyperFilesSql,ListeClientActif)
//Je ne sais pas ce que je dois recevoir pour traiter mes enregistrement.
Certes, je peux faire des Hlit au sein de cette PS, pas de soucis. Par contre, je ne sais pas comment renvoyer l’ensemble des résultats que j’ai obtenu à la fenêtre « clients » pour l’afficher dans « maTable »

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.
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h16   #7
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Je n'ai jamais eu à le faire mais je pense qu'un :

Code :
1
2
3
4
5
6
7
8
9
10
 
sdResultatPS est une source de donnees
 
HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "SELECT Col1, ... FROM ProcedureStockeeSQLServer(...)")
HLitPremier(sdResultatPS)
TANTQUE PAS HEnDehors(sdResultatPS)
	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
	HLitSuivant(sdResultatPS)
FIN
HAnnuleDeclaration(sdResultatPS)

serait une syntaxe potentiellement valable si c'était supporté (à tester).

ou

Code :
1
2
3
4
5
6
7
8
9
10
 
sdResultatPS est une source de donnees
 
HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "ProcedureStockeeSQLServer(...)")
HLitPremier(sdResultatPS)
TANTQUE PAS HEnDehors(sdResultatPS)
	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
	HLitSuivant(sdResultatPS)
FIN
HAnnuleDeclaration(sdResultatPS)
Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h59   #8
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 119
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2008
Messages : 119
Points : 35
Points : 35
J'ai déjà fait des PS MSSQL avec Windev donc ça devrait aller de ce côté là.

Citation:
Envoyé par vmolines Voir le message
Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.
Tiens, vous n'auriez pas un test digne de ce nom de HF C/S avec d'autres SGBD ?

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.
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 09h23   #9
Membre confirmé
 
Homme Arnaud Benhamdine
Directeur technique
Inscription : octobre 2004
Messages : 157
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Benhamdine
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2004
Messages : 157
Points : 263
Points : 263
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.
Arnaud B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 09h38   #10
Membre émérite
 
Homme
Inscription : mars 2002
Messages : 825
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations forums :
Inscription : mars 2002
Messages : 825
Points : 838
Points : 838
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é)
Bowen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 14h59   #11
Nouveau Membre du Club
 
Inscription : décembre 2008
Messages : 119
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2008
Messages : 119
Points : 35
Points : 35
Bonne rencontre,

Merci à vous tous pour vos retours qui m'ont agréablement guidé.

Citation:
SELECT SUM(MonChamp) FROM MaTable WHERE UneConditionBienParticulière
qui me renvoie DEUX lignes... ! Incroyable mais jamais réglé)
Hein hein... Ça fait un peu peur ça quand même...

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.
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h34   #12
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Avec HF, j'ai déjà eu droit à un COUNT qui ne renvoyait aucune ligne si ça peut vous rassurer .
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h24   #13
Membre confirmé
 
Homme Arnaud Benhamdine
Directeur technique
Inscription : octobre 2004
Messages : 157
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Benhamdine
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2004
Messages : 157
Points : 263
Points : 263
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.
Arnaud B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h35   #14
Membre confirmé
 
Homme Arnaud Benhamdine
Directeur technique
Inscription : octobre 2004
Messages : 157
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Benhamdine
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2004
Messages : 157
Points : 263
Points : 263
Ne serait-il pas possible de faire renvoyer une source de données par la PS :

Code :
1
2
3
4
 
sdResultatPS est une source de donnees
 
sdResultatPS = HExecuteProcédure(cnx1, "ProcedureStockeeSQLServer")
ou de passer par adresse une variable de type Source de données à la PS pour qu'elle la remplisse :

Code :
1
2
3
4
 
sdResultatPS est une source de donnees
 
HExecuteProcédure(cnx1, "ProcedureStockeeSQLServer", sdResultatPS)
Je n'ai jamais essayé, mais j'aurais été tenté par ce genre de choses si c'est autorisé.

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:
Envoyé par vmolines Voir le message
Je n'ai jamais eu à le faire mais je pense qu'un :

Code :
1
2
3
4
5
6
7
8
9
10
 
sdResultatPS est une source de donnees
 
HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "SELECT Col1, ... FROM ProcedureStockeeSQLServer(...)")
HLitPremier(sdResultatPS)
TANTQUE PAS HEnDehors(sdResultatPS)
	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
	HLitSuivant(sdResultatPS)
FIN
HAnnuleDeclaration(sdResultatPS)

serait une syntaxe potentiellement valable si c'était supporté (à tester).

ou

Code :
1
2
3
4
5
6
7
8
9
10
 
sdResultatPS est une source de donnees
 
HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "ProcedureStockeeSQLServer(...)")
HLitPremier(sdResultatPS)
TANTQUE PAS HEnDehors(sdResultatPS)
	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
	HLitSuivant(sdResultatPS)
FIN
HAnnuleDeclaration(sdResultatPS)
Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.
Arnaud B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 09h33   #15
Membre émérite
 
Homme
Inscription : mars 2002
Messages : 825
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations forums :
Inscription : mars 2002
Messages : 825
Points : 838
Points : 838
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.
Bowen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 19h32   #16
Membre actif
 
Homme Jean-François Rioux
Main frame, Unix, Windows, AS400
Inscription : mars 2011
Messages : 110
Détails du profil
Informations personnelles :
Nom : Homme Jean-François Rioux
Localisation : Canada

Informations professionnelles :
Activité : Main frame, Unix, Windows, AS400
Secteur : Service public

Informations forums :
Inscription : mars 2011
Messages : 110
Points : 173
Points : 173
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
PROCEDURE SQL_Retourner_Multiple_Valeur(uneTable, tabValeur)
 
// Requête pour remplir le tableau des données de la TABLE
sUneRubrique, sUneValeur est une chaîne = ""
 
// parcours de la première ligne du tableau pour l'obtention des rubriques
sValeurRetournée est une chaîne = Tableau_X_Dimension_Vers_Dimension_Y_En_ChaineFormaté(",",tabValeur,1, 3)
 
// Initialisation de la requête
sUneRequêteSQL est une chaîne = ChaîneConstruit("SELECT %1 FROM %2", sValeurRetournée ,uneTable)	
 
// Exécution de la requête
sdRequête est une Source de Données
bEnregistrement_Existe est un booléen = HExécuteRequêteSQL(sdRequête,GEN_CONNEXION,hRequêteDéfaut,sUneRequêteSQL)
 
// Lecture et retour des informations
SI bEnregistrement_Existe ALORS
	// Lecture du premier enregistrement de la requête
	HLitPremier(sdRequête)
	TANTQUE PAS HEnDehors()
		// La deuxième ligne du tableau contient l'information retournée pour chaque rubrique
		// Et la troisième, le type de rubrique : date, heure, texte, etc
		POUR i = 1 _A_ tabValeur..Occurrence/3
			sUneRubrique = {sdRequête + "." + tabValeur[i][1],indRubrique}..Type
			sUneValeur = {sdRequête + "." + tabValeur[i][1],indRubrique}
			sUneValeur = Valeur_Selon_Type_Rubrique(sUneValeur, sUneRubrique)		
			tabValeur[i][2] += sUneValeur + ";"			
			sUneRubrique = Rubrique_En_Chaine_Selon_Type_Rubrique(sUneRubrique)
			tabValeur[i][3] = sUneRubrique				
		FIN
		HLitSuivant(sdRequête)
	FIN
 
	// Retrait du dernier caractère et mise sous une forme de tableau
	POUR i=1 _A_ tabValeur..Occurrence/3
		sUneValeur = tabValeur[i][2] 
		sUneValeur = Gauche(sUneValeur,Taille(sUneValeur)-1)
		tabValeur[i][2] = sUneValeur
	FIN
 
	bEnregistrement_Existe = Vrai
SINON
	Erreur("Erreur dans l'exécution en lecture de la requête SQL" + RC + ErreurInfo())
	bEnregistrement_Existe = Faux
FIN
 
HAnnuleDéclaration(sdRequête)
 
RENVOYER bEnregistrement_Existe
gardangel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h51.


 
 
 
 
Partenaires

Hébergement Web