Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD10] et acces alter natifs postgresql

6 réponses
Avatar
jacques Trepp
Bonjour,
Un problème m'agace et je ne sais pas y remédier.
J'ai une appli qui tourne très bien en clientèle et qui utilise les classes
sqlmanagerX et postgresql4wd.
Les blocages fonctionnent nickel.

J'ai une autre appli en dev qui utilise strictement les mêmes classes.
Sur cette appli, les blocages ne fonctionnent pas : on peut-etre plusieurs
sur le même enregistrement.
la syntaxe est du genre :

G_Retour = CLT:SqlLitBloque( "id_client = " + codecli, 0, 5) alors
Si pas G_Retour alors
erreur("Enregistrement bloqué par un autre utilisateur.")
fin


G_Retour est toujours Vrai.

la version de C_PostgreSQL4WD est : // version 1.0.0.2
cette de SqlManagerX est : VERSION 3.1.0.3 du 18 mars 2005
les serveurs Postgresql sont en 8.1.3 sous Vista, XP et Redhat.

J'avoue être bien largué, là. :(

Si vous avez une idée géniale, je suis preneur.
Même si ça ne m'arrange pas, je peux migrer vers des versions plus récentes.

PS : pour des besoins perso, j'avais passé en PUBLIC la méthode SQLDeadLock
sur l'appli qui ne fonctionne pas.
J'ai remis en PRIVE, sans résultat.


Cordialement





--
Jacques TREPP
Albypam
3, rue Jean Mermoz
81160 - ST Juery

6 réponses

Avatar
Firetox
BOnjour, jacques

j'y verrais plus une config du sereur postGreSQL ou l'isolation en serait
pas la meme
l'autoCommit a ON au leiu de OFF

il n'y a pas de raison que les classes agissent differement sur un serveur
et un autre sauf s'il ne sont pas configuré pareil

PS depuis la version 5.6.3.9 la methode SQLDeadLock est en public

Bon dev
@+


"jacques Trepp" a écrit dans le message de
news:4a01897e$0$5462$
Bonjour,
Un problème m'agace et je ne sais pas y remédier.
J'ai une appli qui tourne très bien en clientèle et qui utilise les
classes sqlmanagerX et postgresql4wd.
Les blocages fonctionnent nickel.

J'ai une autre appli en dev qui utilise strictement les mêmes classes.
Sur cette appli, les blocages ne fonctionnent pas : on peut-etre plusieurs
sur le même enregistrement.
la syntaxe est du genre :

G_Retour = CLT:SqlLitBloque( "id_client = " + codecli, 0, 5) alors
Si pas G_Retour alors
erreur("Enregistrement bloqué par un autre utilisateur.")
fin


G_Retour est toujours Vrai.

la version de C_PostgreSQL4WD est : // version 1.0.0.2
cette de SqlManagerX est : VERSION 3.1.0.3 du 18 mars 2005
les serveurs Postgresql sont en 8.1.3 sous Vista, XP et Redhat.

J'avoue être bien largué, là. :(

Si vous avez une idée géniale, je suis preneur.
Même si ça ne m'arrange pas, je peux migrer vers des versions plus
récentes.

PS : pour des besoins perso, j'avais passé en PUBLIC la méthode
SQLDeadLock sur l'appli qui ne fonctionne pas.
J'ai remis en PRIVE, sans résultat.


Cordialement





--
Jacques TREPP
Albypam
3, rue Jean Mermoz
81160 - ST Juery


Avatar
jacques Trepp
"Firetox" a écrit dans le message de
news:4a019dc0$0$23995$
BOnjour, jacques

j'y verrais plus une config du sereur postGreSQL ou l'isolation en serait
pas la meme
l'autoCommit a ON au leiu de OFF

il n'y a pas de raison que les classes agissent differement sur un serveur
et un autre sauf s'il ne sont pas configuré pareil

PS depuis la version 5.6.3.9 la methode SQLDeadLock est en public

Bon dev
@+





Bonjour Frédéric,

Je vais vérifier les config. Je téléchargerai la version 5.6.3.9 : c'est
bien pratique, la méthode en public, quand on veut annuler un blocage pour
update.

Merci

--
Jacques TREPP
Albypam
3, rue Jean Mermoz
81160 - ST Juery
Avatar
Firetox
voici un recap des maj depuis la 5.6.0.0
car ta version est assez ancienne

Historique des versions SQLManagerX

version 5.7.0.1
Modification de la methode SQLtableVersEtat pour prendre en compte la charte
de programmation comme SQLtableVersEcran. merci a jean-Phi77 pour l'ecriture
du code

version 5.7.0.0
ajout de 2 methode SQLExecQuery et SQLAvance qui permet d'utiliser les objet
SQLManagerX pour les traitement sans affichage et parcourant une requete :
SQLExecQuery execute la requete sur la table objet avec filtre et condition
(si ils sont positionnés) et laisse le curseur ouvert pour le parcour avec
SQLAvance (evolution sugérée par ViceBerg qui permet une amelioration
importante)

version 5.6.4.4
modification de SQLinsert pour recuperer par la classe la valeur de
l'autoIncrement a la place de le faire dans la dll

version 5.6.4.3
revue du code et suppression de tous les messages infos et warnings.
modification de la methode ChaineSGBDR pour php4Wd pour la nouvelle methode
DEcritTable de MSSQL4WD

version 5.6.4.2
Modification de SQLSuplicate pour les objets declarés en local pour passer
par un objet global pour acceder aux membres.
Modification de SQCreeProc pour les noms contenant des :
Modification du membre ObjTab mis en public pour le manipuler depuis un code
hors de la classe.

version 5.6.4.1
Modification de SQLfiltre pour pouvoir prendre en compte les jointures ce
qui permet a SQLXtable d'afficher des requetes complexes sur des tables
liées (merci a philUser pour la remontée )

version 5.6.4.0
modification du nom de la procedure créée par SQLmanagerX pour accepter les
tableaux d'objets. passage en Virtuelle de la methode SQLTransfertInfos()
qui permet de transferer les valeurs des membres de la classe vers les
tableaux SQLManagerX et inversement. on peut ainsi s'en servir si on en a
besoin. (merci a philUser pour cet ajustement)

version 5.6.3.9
mise en virtuelle de la methode SQLdeadLock servant a detruire un lock en ne
passant pas par une autre methode SQLManagerX. cela permet de delocker une
ligne a la demande

version 5.6.3.8
Modification de la methode SQLDelete qui lors d'un parcours doit
repositionner le curseur sur la ligne précédente sinon le parcours saute la
ligne suivante ou interdit la suppression du dernier (merci a jean-Phi77
pour cette remontée)

version 5.6.3.7
ajout d'un membre BlancSignificatif pour que SQLEcranVersTable enleve ou
conserve les blancs (par defaut et comme la classe fonctionnait avant ce
membre est a faux et les blancs sont surpprimés par un sansEspace) pour
l'activer pour 1 table : exemple i_client:blancSignificatif= vrai (ne fera
plus le sansEspace)
merci a jean-Phi77 pour ce retour et donc cette version

version 5.6.3.6
modification de SQLLien (merci a philUser pour le retour) qui avait un bug
si la clé de la table parent etait de type chaine. maintenant quelque soit
le type de la clé (ou element de la cle dans les clé composée) le lien se
fait correctement.

version 5.6.3.5
modification de SQLchargeMemo qui posait un probleme dans l'affichage des
images dans les etas (merci a jean-Phi77 pour cette modification. maintenant
si vous voulez utiliser SQLChargeMemo dans un etat un parametre est
accessible pour que la methode execute le bon code dans l'etat
(SQLchargeMemo(Nomchamp,nomColonne, pTypeImagaEtat) ce dernier parametre est
un booleen s votre champs est un champs image d'un etat passez ce parametre
a vrai (val par defaut : faux ce qui evite les regressions)

version 5.6.3.4
modification de la methode update pour prendre en compte de façon plus
précise le type ENUM qui pouvait poser des probleme.
merci a Pascal ROY pour cette modification dont le code a été intégré a la
classe.

version 5.6.3.3
la charte graphique qui etait dans une constante pas dans un membre global
donc vous pouvez la modifier a loisir si vous ne voulez pas la constante est
prise par defaut

version 5.6.3.2
modification de TransactionActive et TransactionDesactive
les methodes passent en globales. ce qui permet de desativer ou d'activer
les transactions pour tous les objets SQLManagerX. avant il fallait pour
chaque objet desactiver les transactions et si on manipulait 20 ou 30 objets
dans une procedure cela repreentait 30 ligne pour la desactivation et 30
ligne pour reactiver les transactions. maintenant 1 ligne suffit pour chaque
actions sur autant d'objet qu'on veut

version 5.6.3.1
mise a jour de la methode SQLtableVersTableSQL pour que la methode puisse
acceder a une ligne de la table (avec le dernier parametre p_indice) ce qui
evite dans la mise a jour de faire des tableSelectPlus et de voir le
defilement

version 5.6.3.0
rajout d'une information donnant si une valeur par defaut est une fonction.
dans ce cas SQLinsert et SQLupdate doivent envoyer la fonction a la place de
la valeur

Version 5.6.2.8
modification de SQLinsert et SQLupdate si on veut envoyer la valeur null il
suffit dans le membre de la classe de mettre @NULL dans la valeur du membre.
compatible SQLPrepare

Version 5.6.2.7
la methode SQLObjetRequete permettant de faire une table automatiquement
avec n'importe quelle requettes avait subi une regression avec la mise a
jour 5.6.2.6 la methode est a jour

Version 5.6.2.6
mode table automatique. ajout de la fonctionnalité de tri des colonnes pour
Xtable. vous autorisez le tri sur une colonne SQLManagerX intercepte le clic
et reformate la requête pour afficher les premieres lignes correspondante ,
l'ascenseur faisant la meme chose pour les lignes suivantes.

SQLEtat et SQLEtatP ont ete modifié pour dans le cas d'une table auto suivre
la table sur le nom des colonnes le format et l'etat (une colonne invisible
ne s'imprime plus) le mode requete n'a pas changé et une requete est editée
comme avant

Version 5.6.2.5
un petit bug s'est glisse dans SQLTableAffiche utilisée par Xtable et
n'affichait que la derniere ligne.

Version 5.6.2.4
Modification de SQLDump. dans le cas ou la table a un autoIncrement le
dernier parametre de la methode permet de specifier si on le prend ou non.
par defaut il est inseré pour avoir une base propre car si il y a des
liaison sur cette cle il faut les conserver, mais vous pouvez decider que
SQLDump ne les mettent pas.

Version 5.6.2.3
1 -Modification de SQLedit pour ajouter un membre : OrientationEdition
ce membre permet de specifier si on veut l'etat en portrait ou en paysage
par defaut il vaut "" et l'edition est en portrait, s'il est different de
blanc l'edition sera en paysage

2- ajout dans SQLedit du tag X_ dans le nom d'une colonne (ex select macol
as X_Date from matable). a pour effet de faire un dateversChaine sur la
valeur de la colonne pour avoir la date correcte
LEs 2 etats SQLEtat et SQLEtatP ont changés : pour beneficier de cette modif
n'oubliez pas de changer les 2 etats

Version 5.6.2.1
modification de SQLdump, qui maintenant sauvegarde aussi les blob dans des
fichiers. le fichier script generé contient des lignes commentaires
permettant de faire un update sur la base avec le blob.

on a tout sur cette ligne : nom de la table, where pour identifier la ligne
, la colonne blob et le chemin du fichier permettant de remettre le blob.
j'ai sur ma base des tables avec blob et ca fonctionne tres bien.

a vous de faire le prog qui execute ces lignes : c'est quand meme assez
simple. les fichiers contenant les blob seront dans le meme repertoire que
le fichier script generé.

version 5.6.2.0
modification de SQLChargeMemo si le p_nomChamps etait blanc alors la classe
generait 2 exception l'une derriere l'autre et fermait le programme. ce cas
est rare mais possible (je viens de l'avoir)

version 5.6.1.8
avec le developpement que je fais je me suis rendu compte que l'enchainement
de plein de fenetres table fiche arrivait a provoqué une exception qui
n'etait pas trappées dans un certain cas uniquement et pas systhemaitque.
j'ai alors decidé de changer un peu la gestion des clics dans les table et
fiches : cette version est plus stable et ne pas pas encore fait le
probleme.

version 5.6.1.6
modification de SQLChargeMemo, si on appellait plussieurs fois la methode
(pour charger plusieurs image a l'ecran : ex une image plus 2 vignettes.
l'image etait altérée).
optimisation des acces SQLite pour charger la table en mode fetch. les
autres acces devrait suivrent rapidement.

version 5.6.1.5
le mode table auto evolue encore un peu. maintenant vous dessiner votre
table en nommant les colonnes de la table come les colonnes dans la base.
SQLManagerX construira la requete correctement en fonction de ca. vous
pouvez aussi ajouter des colonnes qui n'existent pas dans la base, la table
sera remplie correctement.

vous pouvez egalement forcer la variable : MonObjetSQMx:ColonneXtable si
elle rempli SQLManagerX n'y touchera pas (les anciennes fenetres table
continueront a fonctionner)

version 5.6.1.4
ajout dans le model table automatique et dans la classe la gestion des
champs de recherche de type combo. comme n'importe quel champs de recherche
seul le nom est important nomdelaColonne_recherche doit etre present dans le
nom du champs (le model table est a jour et l'exemple sur le bouton table
auto aussi)

version 5.6.1.2

marc77 nos a soumis un petit probleme sur le mode fiche auto qui ne suivait
pas la navigation quand on selectionnait une ligne pour passer en mode
fiche. c'est reglé. le mode auto le prend en charge parfaitement.

sur une fenetre en mode V4 il suffit de rajouter dans votre bouton modifier
:
v_cleRech = "client_Id = "+tbl_tableSQL.client_ID[tbl_tableSQL]
ObjetSQLMx:SQLPositionneTable("tbl_tableSQL")
Ouvre(ObjetSQLMx:nomFenetreFiche,2,v_cleRech,"client")

TablePositionne vous mettra tous les indices de SQLManagerX correctement
pour gerer la navigation dans la fenetre fiche qui va s'ouvrir. le mode Auto
le fait tout seul : pas de code supplementaire

TESTER sur tous les serveurs : SQLite, MySQL, Oracle, Access, SQLServer,
FireBird 1.5 , PostGreSQL, HF etc ...

merci a marc77 pour cette remontée.

version 5.6.1.0 / 5.6.1.1

le code de la fenetre fiche attend un parametre supplementaire, le nom de
l'instance SQLManagerX mais dans le projet exemple les bouton de l'ancien
code n'avaient pas ete change : voila qui est fait

Daniel nous a apporté une petite evolution sur le mode fiche automatique. si
vous avez un mode table + un mode fiche alors vous n'avez qu'a desiner la
fenetre. le code de la fiche model n'est plus a reprendre meme si vous
l'appeler du mode table. le model fiche est a jour.

un nouveau membre permet de gerer le message "mise a jour avec succes" qui
apparait ou non. par contre vous pouvez touours laissé SQLManagerX gerer les
messages en cas de probleme o de champs obligatoire avec le membre
[b]gereMessageUtilisateur[b] la combinaison de ce dernier avec
[b]ConfirmeUpdateV5[/b] vous permet de faire ce que vous voulez.

SQLManagerX detecte aussi maintenant en mode fiche la modification de la
fenetre et vous demnadera de confirmer de quitter la fentre sans
enregistrer.


version 5.6.0.8

plusieurs petites modifs ont eu lieu (pour ca le 8) le model table a un peu
evoluer et permet maintenant de faire un dbl clic dans la table pour avoir
la modif ou alors une selection (p_mode de la table permet cela 1 on est en
mode modif sur double clic, 2 on est en mode selection : dans ce mode le
double cli permet de selectionne dans la table et positionne l'objet
sqlmanagerX) pour les bouton ... qui permettent de selectionner dans une
liste

un petit probleme sur le mode fiche avec les auto increments. maintenant
tout fonctionne tres bien 10 fenetres dans l'appli que je developpe ont
permis de stabiliser la classe de fçon rapide et optimale.


version 5.6.0.4

la classe propose maintenant le mode table automatique. vousn'avez qu'a
prendre la fenetre model_table et changer les colonnes dans la table,
ajoutez de champs de recherche. il n'y a pas de code mis a part les lgines
en init de la fenetre (voir plus bas)

pour exemple j'ai creer une fenetre w_client_table_auto appelée par un
bouton sur la fenetre exemple. comment j'ai fait :

j'ai ouvert la fenetre w_model_table
enregistrer sous : w_client_table_auto
clic sur la table modification et ajout des colonnes pour ma table client,
j'ai nommer les colonne de la table comme mes colonnes de la table SQL ex
client_ID
j'ai editer le code de l'init de la fenetre :
ObjetSQLMx = client
ObjetSQLMx:nomFenetreFiche = "w_client_fiche"
ObjetSQLMx:colonneXtable = "client_ID,nom,adresse,codePostal,ville"
ObjetSQLMx:TitreEdition = "Liste des Clients"
ObjetSQLMx:NomProcedureRempliTable = "afficheTable"

j'ai ajouter des champs recherche en les nomant client_ID_recherche et
nom_recherche, codePostal_recherche.

j'ai sauver
j'ai mis le code dans le bouton sur la fenetre exemple
j'ai executer
et j'avais une fenetre table avec mis a jour suppression et pasage en mode
fiche. vous pouvez verifiez avec le projet exmple il n'y a pas de code dans
les 2 fenetres w_client_table_auto et client_fiche, mis a part les champs
recherche mais ce code est generique un copier coller fontionne.

durée du developpement : 5 minutes pour les deux fenetres !!
(ps je viens de creer la mise a jour fournisseur et client de l'appli que je
developpe en 10 minutes)
Avatar
Firetox
et les derniere en date :

version 5.7.0.3
modification d'une methode pour le mode automatique. si on demandait un
message mais que le champs cle n'etait pas un autoIncrement et que le champs
de la fenetre n'a pas de libelle la methode plantait. merci a phil pour le
retour de ce cas particulier

version 5.7.0.2
modification des méthodes SQLrecherche et SQLLitRecherche si on ne transmet
pas le paramètre condition (ou a vide) la condition du filtre sera prise si
un filtre est actif


Bon dev
@+


"Firetox" a écrit dans le message de
news:4a01a7b7$0$29735$
voici un recap des maj depuis la 5.6.0.0
car ta version est assez ancienne

Historique des versions SQLManagerX

version 5.7.0.1
Modification de la methode SQLtableVersEtat pour prendre en compte la
charte de programmation comme SQLtableVersEcran. merci a jean-Phi77 pour
l'ecriture du code

version 5.7.0.0
ajout de 2 methode SQLExecQuery et SQLAvance qui permet d'utiliser les
objet SQLManagerX pour les traitement sans affichage et parcourant une
requete : SQLExecQuery execute la requete sur la table objet avec filtre
et condition (si ils sont positionnés) et laisse le curseur ouvert pour le
parcour avec SQLAvance (evolution sugérée par ViceBerg qui permet une
amelioration importante)

version 5.6.4.4
modification de SQLinsert pour recuperer par la classe la valeur de
l'autoIncrement a la place de le faire dans la dll

version 5.6.4.3
revue du code et suppression de tous les messages infos et warnings.
modification de la methode ChaineSGBDR pour php4Wd pour la nouvelle
methode DEcritTable de MSSQL4WD

version 5.6.4.2
Modification de SQLSuplicate pour les objets declarés en local pour passer
par un objet global pour acceder aux membres.
Modification de SQCreeProc pour les noms contenant des :
Modification du membre ObjTab mis en public pour le manipuler depuis un
code hors de la classe.

version 5.6.4.1
Modification de SQLfiltre pour pouvoir prendre en compte les jointures ce
qui permet a SQLXtable d'afficher des requetes complexes sur des tables
liées (merci a philUser pour la remontée )

version 5.6.4.0
modification du nom de la procedure créée par SQLmanagerX pour accepter
les tableaux d'objets. passage en Virtuelle de la methode
SQLTransfertInfos() qui permet de transferer les valeurs des membres de la
classe vers les tableaux SQLManagerX et inversement. on peut ainsi s'en
servir si on en a besoin. (merci a philUser pour cet ajustement)

version 5.6.3.9
mise en virtuelle de la methode SQLdeadLock servant a detruire un lock en
ne passant pas par une autre methode SQLManagerX. cela permet de delocker
une ligne a la demande

version 5.6.3.8
Modification de la methode SQLDelete qui lors d'un parcours doit
repositionner le curseur sur la ligne précédente sinon le parcours saute
la ligne suivante ou interdit la suppression du dernier (merci a
jean-Phi77 pour cette remontée)

version 5.6.3.7
ajout d'un membre BlancSignificatif pour que SQLEcranVersTable enleve ou
conserve les blancs (par defaut et comme la classe fonctionnait avant ce
membre est a faux et les blancs sont surpprimés par un sansEspace) pour
l'activer pour 1 table : exemple i_client:blancSignificatif= vrai (ne fera
plus le sansEspace)
merci a jean-Phi77 pour ce retour et donc cette version

version 5.6.3.6
modification de SQLLien (merci a philUser pour le retour) qui avait un bug
si la clé de la table parent etait de type chaine. maintenant quelque soit
le type de la clé (ou element de la cle dans les clé composée) le lien se
fait correctement.

version 5.6.3.5
modification de SQLchargeMemo qui posait un probleme dans l'affichage des
images dans les etas (merci a jean-Phi77 pour cette modification.
maintenant si vous voulez utiliser SQLChargeMemo dans un etat un parametre
est accessible pour que la methode execute le bon code dans l'etat
(SQLchargeMemo(Nomchamp,nomColonne, pTypeImagaEtat) ce dernier parametre
est un booleen s votre champs est un champs image d'un etat passez ce
parametre a vrai (val par defaut : faux ce qui evite les regressions)

version 5.6.3.4
modification de la methode update pour prendre en compte de façon plus
précise le type ENUM qui pouvait poser des probleme.
merci a Pascal ROY pour cette modification dont le code a été intégré a la
classe.

version 5.6.3.3
la charte graphique qui etait dans une constante pas dans un membre global
donc vous pouvez la modifier a loisir si vous ne voulez pas la constante
est prise par defaut

version 5.6.3.2
modification de TransactionActive et TransactionDesactive
les methodes passent en globales. ce qui permet de desativer ou d'activer
les transactions pour tous les objets SQLManagerX. avant il fallait pour
chaque objet desactiver les transactions et si on manipulait 20 ou 30
objets dans une procedure cela repreentait 30 ligne pour la desactivation
et 30 ligne pour reactiver les transactions. maintenant 1 ligne suffit
pour chaque actions sur autant d'objet qu'on veut

version 5.6.3.1
mise a jour de la methode SQLtableVersTableSQL pour que la methode puisse
acceder a une ligne de la table (avec le dernier parametre p_indice) ce
qui evite dans la mise a jour de faire des tableSelectPlus et de voir le
defilement

version 5.6.3.0
rajout d'une information donnant si une valeur par defaut est une
fonction. dans ce cas SQLinsert et SQLupdate doivent envoyer la fonction a
la place de la valeur

Version 5.6.2.8
modification de SQLinsert et SQLupdate si on veut envoyer la valeur null
il suffit dans le membre de la classe de mettre @NULL dans la valeur du
membre. compatible SQLPrepare

Version 5.6.2.7
la methode SQLObjetRequete permettant de faire une table automatiquement
avec n'importe quelle requettes avait subi une regression avec la mise a
jour 5.6.2.6 la methode est a jour

Version 5.6.2.6
mode table automatique. ajout de la fonctionnalité de tri des colonnes
pour Xtable. vous autorisez le tri sur une colonne SQLManagerX intercepte
le clic et reformate la requête pour afficher les premieres lignes
correspondante , l'ascenseur faisant la meme chose pour les lignes
suivantes.

SQLEtat et SQLEtatP ont ete modifié pour dans le cas d'une table auto
suivre la table sur le nom des colonnes le format et l'etat (une colonne
invisible ne s'imprime plus) le mode requete n'a pas changé et une requete
est editée comme avant

Version 5.6.2.5
un petit bug s'est glisse dans SQLTableAffiche utilisée par Xtable et
n'affichait que la derniere ligne.

Version 5.6.2.4
Modification de SQLDump. dans le cas ou la table a un autoIncrement le
dernier parametre de la methode permet de specifier si on le prend ou non.
par defaut il est inseré pour avoir une base propre car si il y a des
liaison sur cette cle il faut les conserver, mais vous pouvez decider que
SQLDump ne les mettent pas.

Version 5.6.2.3
1 -Modification de SQLedit pour ajouter un membre : OrientationEdition
ce membre permet de specifier si on veut l'etat en portrait ou en paysage
par defaut il vaut "" et l'edition est en portrait, s'il est different de
blanc l'edition sera en paysage

2- ajout dans SQLedit du tag X_ dans le nom d'une colonne (ex select macol
as X_Date from matable). a pour effet de faire un dateversChaine sur la
valeur de la colonne pour avoir la date correcte
LEs 2 etats SQLEtat et SQLEtatP ont changés : pour beneficier de cette
modif n'oubliez pas de changer les 2 etats

Version 5.6.2.1
modification de SQLdump, qui maintenant sauvegarde aussi les blob dans des
fichiers. le fichier script generé contient des lignes commentaires
permettant de faire un update sur la base avec le blob.

on a tout sur cette ligne : nom de la table, where pour identifier la
ligne , la colonne blob et le chemin du fichier permettant de remettre le
blob. j'ai sur ma base des tables avec blob et ca fonctionne tres bien.

a vous de faire le prog qui execute ces lignes : c'est quand meme assez
simple. les fichiers contenant les blob seront dans le meme repertoire que
le fichier script generé.

version 5.6.2.0
modification de SQLChargeMemo si le p_nomChamps etait blanc alors la
classe generait 2 exception l'une derriere l'autre et fermait le
programme. ce cas est rare mais possible (je viens de l'avoir)

version 5.6.1.8
avec le developpement que je fais je me suis rendu compte que
l'enchainement de plein de fenetres table fiche arrivait a provoqué une
exception qui n'etait pas trappées dans un certain cas uniquement et pas
systhemaitque. j'ai alors decidé de changer un peu la gestion des clics
dans les table et fiches : cette version est plus stable et ne pas pas
encore fait le probleme.

version 5.6.1.6
modification de SQLChargeMemo, si on appellait plussieurs fois la methode
(pour charger plusieurs image a l'ecran : ex une image plus 2 vignettes.
l'image etait altérée).
optimisation des acces SQLite pour charger la table en mode fetch. les
autres acces devrait suivrent rapidement.

version 5.6.1.5
le mode table auto evolue encore un peu. maintenant vous dessiner votre
table en nommant les colonnes de la table come les colonnes dans la base.
SQLManagerX construira la requete correctement en fonction de ca. vous
pouvez aussi ajouter des colonnes qui n'existent pas dans la base, la
table sera remplie correctement.

vous pouvez egalement forcer la variable : MonObjetSQMx:ColonneXtable si
elle rempli SQLManagerX n'y touchera pas (les anciennes fenetres table
continueront a fonctionner)

version 5.6.1.4
ajout dans le model table automatique et dans la classe la gestion des
champs de recherche de type combo. comme n'importe quel champs de
recherche seul le nom est important nomdelaColonne_recherche doit etre
present dans le nom du champs (le model table est a jour et l'exemple sur
le bouton table auto aussi)

version 5.6.1.2

marc77 nos a soumis un petit probleme sur le mode fiche auto qui ne
suivait pas la navigation quand on selectionnait une ligne pour passer en
mode fiche. c'est reglé. le mode auto le prend en charge parfaitement.

sur une fenetre en mode V4 il suffit de rajouter dans votre bouton
modifier :
v_cleRech = "client_Id = "+tbl_tableSQL.client_ID[tbl_tableSQL]
ObjetSQLMx:SQLPositionneTable("tbl_tableSQL")
Ouvre(ObjetSQLMx:nomFenetreFiche,2,v_cleRech,"client")

TablePositionne vous mettra tous les indices de SQLManagerX correctement
pour gerer la navigation dans la fenetre fiche qui va s'ouvrir. le mode
Auto le fait tout seul : pas de code supplementaire

TESTER sur tous les serveurs : SQLite, MySQL, Oracle, Access, SQLServer,
FireBird 1.5 , PostGreSQL, HF etc ...

merci a marc77 pour cette remontée.

version 5.6.1.0 / 5.6.1.1

le code de la fenetre fiche attend un parametre supplementaire, le nom de
l'instance SQLManagerX mais dans le projet exemple les bouton de l'ancien
code n'avaient pas ete change : voila qui est fait

Daniel nous a apporté une petite evolution sur le mode fiche automatique.
si vous avez un mode table + un mode fiche alors vous n'avez qu'a desiner
la fenetre. le code de la fiche model n'est plus a reprendre meme si vous
l'appeler du mode table. le model fiche est a jour.

un nouveau membre permet de gerer le message "mise a jour avec succes" qui
apparait ou non. par contre vous pouvez touours laissé SQLManagerX gerer
les messages en cas de probleme o de champs obligatoire avec le membre
[b]gereMessageUtilisateur[b] la combinaison de ce dernier avec
[b]ConfirmeUpdateV5[/b] vous permet de faire ce que vous voulez.

SQLManagerX detecte aussi maintenant en mode fiche la modification de la
fenetre et vous demnadera de confirmer de quitter la fentre sans
enregistrer.


version 5.6.0.8

plusieurs petites modifs ont eu lieu (pour ca le 8) le model table a un
peu evoluer et permet maintenant de faire un dbl clic dans la table pour
avoir la modif ou alors une selection (p_mode de la table permet cela 1 on
est en mode modif sur double clic, 2 on est en mode selection : dans ce
mode le double cli permet de selectionne dans la table et positionne
l'objet sqlmanagerX) pour les bouton ... qui permettent de selectionner
dans une liste

un petit probleme sur le mode fiche avec les auto increments. maintenant
tout fonctionne tres bien 10 fenetres dans l'appli que je developpe ont
permis de stabiliser la classe de fçon rapide et optimale.


version 5.6.0.4

la classe propose maintenant le mode table automatique. vousn'avez qu'a
prendre la fenetre model_table et changer les colonnes dans la table,
ajoutez de champs de recherche. il n'y a pas de code mis a part les lgines
en init de la fenetre (voir plus bas)

pour exemple j'ai creer une fenetre w_client_table_auto appelée par un
bouton sur la fenetre exemple. comment j'ai fait :

j'ai ouvert la fenetre w_model_table
enregistrer sous : w_client_table_auto
clic sur la table modification et ajout des colonnes pour ma table client,
j'ai nommer les colonne de la table comme mes colonnes de la table SQL ex
client_ID
j'ai editer le code de l'init de la fenetre :
ObjetSQLMx = client
ObjetSQLMx:nomFenetreFiche = "w_client_fiche"
ObjetSQLMx:colonneXtable = "client_ID,nom,adresse,codePostal,ville"
ObjetSQLMx:TitreEdition = "Liste des Clients"
ObjetSQLMx:NomProcedureRempliTable = "afficheTable"

j'ai ajouter des champs recherche en les nomant client_ID_recherche et
nom_recherche, codePostal_recherche.

j'ai sauver
j'ai mis le code dans le bouton sur la fenetre exemple
j'ai executer
et j'avais une fenetre table avec mis a jour suppression et pasage en mode
fiche. vous pouvez verifiez avec le projet exmple il n'y a pas de code
dans les 2 fenetres w_client_table_auto et client_fiche, mis a part les
champs recherche mais ce code est generique un copier coller fontionne.

durée du developpement : 5 minutes pour les deux fenetres !!
(ps je viens de creer la mise a jour fournisseur et client de l'appli que
je developpe en 10 minutes)


Avatar
jacques Trepp
>> j'y verrais plus une config du sereur postGreSQL ou l'isolation en serait
pas la meme
l'autoCommit a ON au leiu de OFF






Fred, je suis naze ! je ne trouve même pas où paramétrer l'autocommit :(
Vivement la retraite !


--
Jacques TREPP
Albypam
3, rue Jean Mermoz
81160 - ST Juery
Avatar
Firetox
Bonjour, jacque depuis la 7.4 l'autoCommit cote server a ete supprimer et se
trouve maintenant cote client
donc dans ton cas tu dois avoir un libpq.dll differentes car c'est elle qui
controle l'autocmmit coté client

sinon c'est bizarre
voir dans le .conf ce qu'il y a

bon dev
@+

"jacques Trepp" a écrit dans le message de
news:4a02ec4f$0$681$
j'y verrais plus une config du sereur postGreSQL ou l'isolation en
serait pas la meme
l'autoCommit a ON au leiu de OFF






Fred, je suis naze ! je ne trouve même pas où paramétrer l'autocommit :(
Vivement la retraite !


--
Jacques TREPP
Albypam
3, rue Jean Mermoz
81160 - ST Juery