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

WD12 MySQL 4.1 - equivalent de wdmap

7 réponses
Avatar
I.G.LOG
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de données ;
un équivalent de WDMap en gros.
Pour ça, je gère une table (table mémoire Windev) construite dynamiquement
en fonction de la requete select (exécutée par SQLExec).
Je voudrais qu'on puisse modifier un enregistrement et éventuellement en
ajouter.
Bien sur, ces modification ne seront possibles que dans le cas de requete
"mono-table".
Mais je ne vois pas du tout comment, à partir d'une requete select
quelconque, faire pointer la ligne de la table mémoire vers le tuple de la
table MySQL.
J'ai abordé plusieurs fois le sujet de n° d'enregistrements, mais ce concept
n'existe pas sur les SGBD, et pas sur MySQL donc. Dans ce cas, un n°
d'enregistrement aurait été bien utile pour faire le lien avec la table
MySQL (je regrette le bon vieux hNumEnr() de HyperFile)
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?
J'utilise MySQL Control Center pour manipuler les tables de l'appli. Et
c'est possible de modifier les champs des tables manipulées, même celles qui
n'ont pas d'identifiants uniques !!

Merci à tous

7 réponses

Avatar
Gilles
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance" permettant
à l'utilisateur de manipuler les tables de la base de données ; un équivalent
de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une
clé primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...
Avatar
Roumégou Eric
Gilles avait écrit le 18/03/2010 :
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de données ;
un équivalent de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une clé
primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...



idem !
Pour moi une table doit toujours avoir un clé technique c.a.d. une clé
primaire de type numérique et de pref en auto_increment.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Daniel
Le 18/03/2010 08:33, Gilles a écrit :
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de
données ; un équivalent de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une
clé primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...





L'outil fournit par MySQL exige une clé primaire pour faire ce que tu
veux faire, il faut par conséquent que tu ais une clé primaire dans ton
tableau.

Attention si tu laisses faire Windev pour la création de la table, il
crée toutes les tables avec des index, il faut dans ce cas repasser sur
les tables et à la place de l'index unique que windev a mis, mettre une
clé primaire.

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
I.G.LOG
"Gilles" a écrit dans le message de
news: 4ba1d752$0$23898$
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de données
; un équivalent de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une clé
primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...





Bonjour,
Avec MySQL Control Center 0.9-beta, je peux modifier une ligne de table
alors que celle-ci ne comporte pas de clé primaire:

Table ARTEQU:
ARTCLE bigint(20), index MUL
EQUCLE bigint(20)
TYPEREF int(11)

Je viens de faire l'essai, la modif d'un champ est bien effectuée.
Je vais chercher _rowid mais je ne connais pas le principe !?

Encore merci
Avatar
Daniel
Le 18/03/2010 09:24, I.G.LOG a écrit :
"Gilles" a écrit dans le message de
news: 4ba1d752$0$23898$
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de données
; un équivalent de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une clé
primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...





Bonjour,
Avec MySQL Control Center 0.9-beta, je peux modifier une ligne de table
alors que celle-ci ne comporte pas de clé primaire:

Table ARTEQU:
ARTCLE bigint(20), index MUL
EQUCLE bigint(20)
TYPEREF int(11)

Je viens de faire l'essai, la modif d'un champ est bien effectuée.
Je vais chercher _rowid mais je ne connais pas le principe !?

Encore merci





Mysql Control Center n'est plus maintenu depuis des années, il faut
utiliser MySQL Query Browser.


--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
Firetox
Bonjour,


"I.G.LOG" a écrit dans le message de
news:4ba1e354$0$15820$

"Gilles" a écrit dans le message de
news: 4ba1d752$0$23898$
I.G.LOG a formulé la demande :
Bonjour,

Je cherche a intégrer dans une appli une fonction de "maintenance"
permettant à l'utilisateur de manipuler les tables de la base de données
; un équivalent de WDMap en gros.
D'où ma question: voyez vous une "astuce" pour gérer ce lien ?



Sans clé primaire je ne vois pas.
Il y a _rowid en MYSQL mais je ne crois pas qu'il fonctionne sans une clé
primaire.

Une table sans clé primaire, perso, ca me dépasse complètement...





Bonjour,
Avec MySQL Control Center 0.9-beta, je peux modifier une ligne de table
alors que celle-ci ne comporte pas de clé primaire:

Table ARTEQU:
ARTCLE bigint(20), index MUL
EQUCLE bigint(20)
TYPEREF int(11)

Je viens de faire l'essai, la modif d'un champ est bien effectuée.
Je vais chercher _rowid mais je ne connais pas le principe !?

Encore merci




a verifier aussi que lors d'une mise a jour toutes les colonnes ne sont pas
envoyée
par exemple a l'epoque sous SQLyog lorsqu'on enregistrait une ligne il
envoyait totues les colonnes dans l'update
si je modifiais par exemple un champs anodi (date creation) il envoayit dans
l'update aussi les colonnes non modifiées et par exemple le stock se
trouvait mis a jour alors qu'on ne l'avait pas touché (j'ai mis un momement
avant de savoir que c'etait SQLyog qui faisait cela)

c'est pour cela que dans le data center je fais l'update des colonnes
modifiée et que je n'autorise pas la modification des enreg s'il n'y a pas
de primary ou de cle unique car on modifie alors plusieurs lignes et cela
peu etre dangereux je laisse le soin au developpeur de le faire par une
requete update s'il veut

cordialement
Avatar
I.G.LOG

a verifier aussi que lors d'une mise a jour toutes les colonnes ne sont
pas envoyée
par exemple a l'epoque sous SQLyog lorsqu'on enregistrait une ligne il
envoyait totues les colonnes dans l'update
si je modifiais par exemple un champs anodi (date creation) il envoayit
dans l'update aussi les colonnes non modifiées et par exemple le stock se
trouvait mis a jour alors qu'on ne l'avait pas touché (j'ai mis un
momement avant de savoir que c'etait SQLyog qui faisait cela)

c'est pour cela que dans le data center je fais l'update des colonnes
modifiée et que je n'autorise pas la modification des enreg s'il n'y a pas
de primary ou de cle unique car on modifie alors plusieurs lignes et cela
peu etre dangereux je laisse le soin au developpeur de le faire par une
requete update s'il veut

cordialement





Bonjour Firetox,
Oui cette condition de clé primaire ou unique pour modification semble être
la seule solution (en l'absence de n° d'enregistrement).
Je voulais l'éviter car ça complique mon traitement. En effet, l'utilisateur
peut saisir n'importe quelle requete select. Pour gérer les clés uniques, il
faut donc que je modifie la requete dynamiquement (en scrutant la structure
de la table, ce qui, de plus, va nécessiter une requète supplémentaire et
donc un temps de réponse plus grand) et que je rajoute une colonne invisible
contenant l'identifiant.
Mais, s'il n'y a pas d'autres solutions... je vais m'y atteler !
Merci à vous tous