#1 Tue 25 May 2004 09:32
- Virginie Girault
- Invité
Table en lecture seule
Bonjour a tous !
Contexte : Dans un prg MB, je veux creer un index sur une table que j'ai enregistre sur mon disque. Dans le .Wor, elle est ouverte dans le controle des couches, mais j'obtiens un message du genre la table n'est pas une table de base En cherchant un peu, j'ai vu que l'on ne pouvais pas creer d'index sur une table READ ONLY. Aussi, la question est : comment, en mapbasic, annuler cette propriete READONLY. En compulsant le forum, j'ai pu constater qu'il n'y avait pas d'alternative y compris via les options useredit....etc. Quelle alternative donc ? Est-ce que fermer la table puis la reouvir constitue une solution fiable ? Sinon, si vous avez d'autres solutions magiques, merci d'avance.
#2 Tue 25 May 2004 16:46
- Virginie Girault
- Invité
Re: Table en lecture seule
Je m'auto-repond mais ca peut etre utile au forum.
Ne parvenant pas a deproteger proprement le fichier en question sous XP, je suis passee par la tres utile commande attrib -a -r sous DOS. Ca a fonctionne.
Dans mon prog MB, je cree une table avec un extrait de la table desormais deprotegee de MI, que j'enregistre sur mon disque dur sous le nom trans.TAB. Mais o stupeur, (puisque c'est a partir de cette table la que je veux creer mon index), celle-ci est de nouveau reprotegee par MI, donc j'obtiens toujours ce fabuleux message d'erreur comme quoi la table n'est pas une table de base ! Calomnie ! Je croyais qu'une copie de table sur le disque recuperait les parametres du fichier pere selon MI, et bien ce n'est pas le cas....
Comment donc, et deja y a t-il moyen de lancer une commande dans mon prog MB qui execute ce fameux attrib -a -r sur les fichiers trans*.* au moyen d'une API windows lancee en ligne de commande, et si oui, comment ? Merci de vos idees et suggestions.
#3 Tue 25 May 2004 16:46
- Francois Biju-Duval
- Invité
Re: Table en lecture seule
Bonjour.
J'ai une idée :
1. Utiliser les fonctions GetDrives() GetDir() GetFileNames() du site de Jacques Paris à la page http://www.paris-pc-gis.com/mb_r/fs/fs_start_a.htm pour trouver trans*.* et récupérer ainsi tous les nom chemin (?) et nom fichier
2. Dim CommandString as string
CommandString = Run Program & Chr(34) & command.com /c attrib & nom chemin & nom fichier & -a -r & Chr(34)
Run Command CommandString
P.S. : * je n'ai pas pratiqué, ça reste quand même théorique !
* if faut peut-être mettre le chemin complet de command.com
* le paramètre /c après command.com est donné par le manuel MapBasic; je ne sais pas ce qu'il fait
* Chr(34) représente "
* lancer CommandString autant de fois qu'il y a de fichiers
Tenez-moi au courant, si ça marche ou pas !
Bon courage.