J'ai un programme qui est une sorte de générateur de requête et qui
pour cela passe par un affichage de 2 tables mémoires et d'un champs
texte multiligne.
Le remplissage de ces tables résulte des choix et manips de
l'utilisateur.
J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les
modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base.
Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de
recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt xml
et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait
de la stucture de la table.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TLB
On 31 oct, 20:09, Roumegou Eric wrote:
Bonsoir, Demande peut-être bizarre mais ...
J'ai un programme qui est une sorte de générateur de requête et qui pour cela passe par un affichage de 2 tables mémoires et d'un champs texte multiligne.
Le remplissage de ces tables résulte des choix et manips de l'utilisateur. J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base. Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt x ml et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :) contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en fin de message: 1) Créer un fichier et mettre les lignes de la table maligne=matbletable[i] et insérer maligne ds le fichier fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de préciser le nombre de lignes à lire (matable..occurrence) En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne) et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est simple mais à l'inconvénient de figer le programme. Une simple modif et le fichier de sauvegarde ne sera plus compatible ou alors il faut gérer les séparateurs tab. 2) Quitte à gérer les tab, autant le faire au début et utiliser les fonctions IniEcrit() et IniLit() en structurant le fichier avec des mots clés. Plus de code, mais plus fiable et plus souple et maintenance plus facile. Cette méthode est complètement indépendante de la structure de la table et vous permet même d'imprimer un source de la requête compréhensible par l'utilisateur. J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un fichier de requête construit sur ce principe. Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo par table. Le premier contiendrait le mot cle+tab+rc+num ordre séparateur du deuxième memo. Les deux chaines se construisent donc en même temps et sont insérées ds les mémos en fin de procédure. En lecture il suffit de faire l'inverse. Lire ds une boucle tantque le permier memo et chercher la donnée ds le deuxième par extraitchaine. Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en temps que données. De cette manière vous êtes complètement indépendant de la structure des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à revoir tt le code, gérer des num de version etc ...
En espérant vous avoir aidé.
On 31 oct, 20:09, Roumegou Eric <eric.roume...@wtablettes.net> wrote:
Bonsoir,
Demande peut-être bizarre mais ...
J'ai un programme qui est une sorte de générateur de requête et qui
pour cela passe par un affichage de 2 tables mémoires et d'un champs
texte multiligne.
Le remplissage de ces tables résulte des choix et manips de
l'utilisateur.
J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les
modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base.
Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de
recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt x ml
et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait
de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :)
contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en
fin de message:
1) Créer un fichier et mettre les lignes de la table
maligne=matbletable[i] et insérer maligne ds le fichier
fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de
préciser le nombre de lignes à lire (matable..occurrence)
En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne)
et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est
simple mais à l'inconvénient de figer le programme.
Une simple modif et le fichier de sauvegarde ne sera plus compatible
ou alors il faut gérer les séparateurs tab.
2) Quitte à gérer les tab, autant le faire au début et utiliser les
fonctions IniEcrit() et IniLit() en structurant le fichier avec des
mots clés. Plus de code, mais plus fiable et plus souple et
maintenance plus facile. Cette méthode est complètement indépendante
de la structure de la table et vous permet même d'imprimer un source
de la requête compréhensible par l'utilisateur.
J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un
fichier de requête construit sur ce principe.
Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo
par table. Le premier contiendrait le mot cle+tab+rc+num ordre
séparateur du deuxième memo. Les deux chaines se construisent donc en
même temps et sont insérées ds les mémos en fin de procédure. En
lecture il suffit de faire l'inverse. Lire ds une boucle tantque le
permier memo et chercher la donnée ds le deuxième par extraitchaine.
Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos
mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en
temps que données.
De cette manière vous êtes complètement indépendant de la structure
des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à
revoir tt le code, gérer des num de version etc ...
J'ai un programme qui est une sorte de générateur de requête et qui pour cela passe par un affichage de 2 tables mémoires et d'un champs texte multiligne.
Le remplissage de ces tables résulte des choix et manips de l'utilisateur. J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base. Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt x ml et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :) contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en fin de message: 1) Créer un fichier et mettre les lignes de la table maligne=matbletable[i] et insérer maligne ds le fichier fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de préciser le nombre de lignes à lire (matable..occurrence) En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne) et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est simple mais à l'inconvénient de figer le programme. Une simple modif et le fichier de sauvegarde ne sera plus compatible ou alors il faut gérer les séparateurs tab. 2) Quitte à gérer les tab, autant le faire au début et utiliser les fonctions IniEcrit() et IniLit() en structurant le fichier avec des mots clés. Plus de code, mais plus fiable et plus souple et maintenance plus facile. Cette méthode est complètement indépendante de la structure de la table et vous permet même d'imprimer un source de la requête compréhensible par l'utilisateur. J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un fichier de requête construit sur ce principe. Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo par table. Le premier contiendrait le mot cle+tab+rc+num ordre séparateur du deuxième memo. Les deux chaines se construisent donc en même temps et sont insérées ds les mémos en fin de procédure. En lecture il suffit de faire l'inverse. Lire ds une boucle tantque le permier memo et chercher la donnée ds le deuxième par extraitchaine. Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en temps que données. De cette manière vous êtes complètement indépendant de la structure des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à revoir tt le code, gérer des num de version etc ...
En espérant vous avoir aidé.
Roumegou Eric
TLB avait écrit le 31/10/2007 :
On 31 oct, 20:09, Roumegou Eric wrote:
Bonsoir, Demande peut-être bizarre mais ...
J'ai un programme qui est une sorte de générateur de requête et qui pour cela passe par un affichage de 2 tables mémoires et d'un champs texte multiligne.
Le remplissage de ces tables résulte des choix et manips de l'utilisateur. J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base. Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt xml et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :) contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en fin de message: 1) Créer un fichier et mettre les lignes de la table maligne=matbletable[i] et insérer maligne ds le fichier fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de préciser le nombre de lignes à lire (matable..occurrence) En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne) et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est simple mais à l'inconvénient de figer le programme. Une simple modif et le fichier de sauvegarde ne sera plus compatible ou alors il faut gérer les séparateurs tab. 2) Quitte à gérer les tab, autant le faire au début et utiliser les fonctions IniEcrit() et IniLit() en structurant le fichier avec des mots clés. Plus de code, mais plus fiable et plus souple et maintenance plus facile. Cette méthode est complètement indépendante de la structure de la table et vous permet même d'imprimer un source de la requête compréhensible par l'utilisateur. J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un fichier de requête construit sur ce principe. Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo par table. Le premier contiendrait le mot cle+tab+rc+num ordre séparateur du deuxième memo. Les deux chaines se construisent donc en même temps et sont insérées ds les mémos en fin de procédure. En lecture il suffit de faire l'inverse. Lire ds une boucle tantque le permier memo et chercher la donnée ds le deuxième par extraitchaine. Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en temps que données. De cette manière vous êtes complètement indépendant de la structure des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à revoir tt le code, gérer des num de version etc ...
En espérant vous avoir aidé.
Merci beaucoup de ta réponse détaillée qui m'a orientée vers la solution suivante : Sauvegarder les contenus des tables en XML.
avec le code suivant wContent1,wContent2,wtable sont des chaînes wContent1="";wContent2="" cmd est une chaîne wfic est une chaîne wfic=ComplèteRep(gPrivateRep)+"ficwrk.xml" TableVersXML(Table1,wfic,taAvecColonnesInvisibles+taSansXSL) wContent1ühargeTexte(wfic) TableVersXML(Table2,wfic,taAvecColonnesInvisibles+taSansXSL) wContent2ühargeTexte(wfic) SELON ENTITE CAS 1 : wtable="PEOPLE" CAS 2 : wtable="PEOPLE_RESULT" CAS 3 : wtable="PEOPLE_BANK" AUTRE CAS
FIN // sauvegarde en base. cmd="INSERT INTO REQFAVORI (OPE_ID,FAV_TABLE,FAV_DESC,FAV_COMM,DATE_CREAT,LOGIN_CREAT,SRC_CREAT,FAV_TYPE,LVL_ID,FAV_TABLE1,FAV_TABLE2) VALUE("+... gOpe_Id+","+... Quote(wtable)+","+... Quote(FAV_DESC)+","+... Quote(REQU)+","+... DateSGBD(DateSys(),cToSGBD)+","+... Quote(gUser)+","+... Quote(MaFenêtre..Nom)+","+... 2+","+... LVL_ID+","+... Quote(wContent1)+","+... Quote(wContent2)+")"
ExecInsert(cmd)
Cela me fait qq chose de bien propre, me reste plus qu'a développer la restitution du xml en table.
Merci encore.
TLB avait écrit le 31/10/2007 :
On 31 oct, 20:09, Roumegou Eric <eric.roume...@wtablettes.net> wrote:
Bonsoir,
Demande peut-être bizarre mais ...
J'ai un programme qui est une sorte de générateur de requête et qui
pour cela passe par un affichage de 2 tables mémoires et d'un champs
texte multiligne.
Le remplissage de ces tables résulte des choix et manips de
l'utilisateur.
J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les
modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base.
Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de
recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt xml
et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait
de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :)
contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en
fin de message:
1) Créer un fichier et mettre les lignes de la table
maligne=matbletable[i] et insérer maligne ds le fichier
fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de
préciser le nombre de lignes à lire (matable..occurrence)
En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne)
et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est
simple mais à l'inconvénient de figer le programme.
Une simple modif et le fichier de sauvegarde ne sera plus compatible
ou alors il faut gérer les séparateurs tab.
2) Quitte à gérer les tab, autant le faire au début et utiliser les
fonctions IniEcrit() et IniLit() en structurant le fichier avec des
mots clés. Plus de code, mais plus fiable et plus souple et
maintenance plus facile. Cette méthode est complètement indépendante
de la structure de la table et vous permet même d'imprimer un source
de la requête compréhensible par l'utilisateur.
J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un
fichier de requête construit sur ce principe.
Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo
par table. Le premier contiendrait le mot cle+tab+rc+num ordre
séparateur du deuxième memo. Les deux chaines se construisent donc en
même temps et sont insérées ds les mémos en fin de procédure. En
lecture il suffit de faire l'inverse. Lire ds une boucle tantque le
permier memo et chercher la donnée ds le deuxième par extraitchaine.
Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos
mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en
temps que données.
De cette manière vous êtes complètement indépendant de la structure
des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à
revoir tt le code, gérer des num de version etc ...
En espérant vous avoir aidé.
Merci beaucoup de ta réponse détaillée qui m'a orientée vers la
solution suivante : Sauvegarder les contenus des tables en XML.
avec le code suivant
wContent1,wContent2,wtable sont des chaînes
wContent1="";wContent2=""
cmd est une chaîne
wfic est une chaîne
wfic=ComplèteRep(gPrivateRep)+"ficwrk.xml"
TableVersXML(Table1,wfic,taAvecColonnesInvisibles+taSansXSL)
wContent1ühargeTexte(wfic)
TableVersXML(Table2,wfic,taAvecColonnesInvisibles+taSansXSL)
wContent2ühargeTexte(wfic)
SELON ENTITE
CAS 1 : wtable="PEOPLE"
CAS 2 : wtable="PEOPLE_RESULT"
CAS 3 : wtable="PEOPLE_BANK"
AUTRE CAS
FIN
// sauvegarde en base.
cmd="INSERT INTO REQFAVORI
(OPE_ID,FAV_TABLE,FAV_DESC,FAV_COMM,DATE_CREAT,LOGIN_CREAT,SRC_CREAT,FAV_TYPE,LVL_ID,FAV_TABLE1,FAV_TABLE2)
VALUE("+...
gOpe_Id+","+...
Quote(wtable)+","+...
Quote(FAV_DESC)+","+...
Quote(REQU)+","+...
DateSGBD(DateSys(),cToSGBD)+","+...
Quote(gUser)+","+...
Quote(MaFenêtre..Nom)+","+...
2+","+...
LVL_ID+","+...
Quote(wContent1)+","+...
Quote(wContent2)+")"
ExecInsert(cmd)
Cela me fait qq chose de bien propre, me reste plus qu'a développer la
restitution du xml en table.
J'ai un programme qui est une sorte de générateur de requête et qui pour cela passe par un affichage de 2 tables mémoires et d'un champs texte multiligne.
Le remplissage de ces tables résulte des choix et manips de l'utilisateur. J'aimerais sauvegarder ces manips pour que l'utilisateur puisse les modifier ou en créer de nouvelles (à partir de)
L'idéal serait de pouvoir sauvegarder ma table1 et ma table2 en base. Dans un champs mémo par exemple. Et de pouvoir lire le fichier et de recharger automatiquement ces tables.
Pas possible hein ?
faites moi une réponse à la SNCF svp lol
Bien sûr : je pourrais memoriser le déatil des colonnes sous un fmt xml et le recharger ensuite. Mais j'aimerais bien un truc qui s'absoudrait de la stucture de la table.
Merci de vos réponses.
D'abord, désolé mais je ne sais pas ce qu'est une réponse à la SNCF :) contrairement au sandwich du même nom :)))
Deux possibilités selon moi par fichier texte, adaptation en mémo en fin de message: 1) Créer un fichier et mettre les lignes de la table maligne=matbletable[i] et insérer maligne ds le fichier fEcritLigne(numfic, maligne). Ne pas oublier pour chaque table de préciser le nombre de lignes à lire (matable..occurrence) En lecture du fichier, récupérer la ligne (fLitLigne(numfic, maligne) et ajouter la table (tableAjoute(matable, maligne)). Cette méthode est simple mais à l'inconvénient de figer le programme. Une simple modif et le fichier de sauvegarde ne sera plus compatible ou alors il faut gérer les séparateurs tab. 2) Quitte à gérer les tab, autant le faire au début et utiliser les fonctions IniEcrit() et IniLit() en structurant le fichier avec des mots clés. Plus de code, mais plus fiable et plus souple et maintenance plus facile. Cette méthode est complètement indépendante de la structure de la table et vous permet même d'imprimer un source de la requête compréhensible par l'utilisateur. J'ai fait ce genre de travail en windev 5.5. Je peux vous envoyer un fichier de requête construit sur ce principe. Pour adapter et stocker ds des champs mémo, je ferais 2 champs mémo par table. Le premier contiendrait le mot cle+tab+rc+num ordre séparateur du deuxième memo. Les deux chaines se construisent donc en même temps et sont insérées ds les mémos en fin de procédure. En lecture il suffit de faire l'inverse. Lire ds une boucle tantque le permier memo et chercher la donnée ds le deuxième par extraitchaine. Je vous conseillerai d'éviter les séparateurs tab et rc ds les mémos mais plutôt ESC et EOT qui n'ont aucune chance de se retrouver en temps que données. De cette manière vous êtes complètement indépendant de la structure des tables et vous pouvez ajouter ou enlever des colonnes sans avoir à revoir tt le code, gérer des num de version etc ...
En espérant vous avoir aidé.
Merci beaucoup de ta réponse détaillée qui m'a orientée vers la solution suivante : Sauvegarder les contenus des tables en XML.
avec le code suivant wContent1,wContent2,wtable sont des chaînes wContent1="";wContent2="" cmd est une chaîne wfic est une chaîne wfic=ComplèteRep(gPrivateRep)+"ficwrk.xml" TableVersXML(Table1,wfic,taAvecColonnesInvisibles+taSansXSL) wContent1ühargeTexte(wfic) TableVersXML(Table2,wfic,taAvecColonnesInvisibles+taSansXSL) wContent2ühargeTexte(wfic) SELON ENTITE CAS 1 : wtable="PEOPLE" CAS 2 : wtable="PEOPLE_RESULT" CAS 3 : wtable="PEOPLE_BANK" AUTRE CAS
FIN // sauvegarde en base. cmd="INSERT INTO REQFAVORI (OPE_ID,FAV_TABLE,FAV_DESC,FAV_COMM,DATE_CREAT,LOGIN_CREAT,SRC_CREAT,FAV_TYPE,LVL_ID,FAV_TABLE1,FAV_TABLE2) VALUE("+... gOpe_Id+","+... Quote(wtable)+","+... Quote(FAV_DESC)+","+... Quote(REQU)+","+... DateSGBD(DateSys(),cToSGBD)+","+... Quote(gUser)+","+... Quote(MaFenêtre..Nom)+","+... 2+","+... LVL_ID+","+... Quote(wContent1)+","+... Quote(wContent2)+")"
ExecInsert(cmd)
Cela me fait qq chose de bien propre, me reste plus qu'a développer la restitution du xml en table.