Importation de fichier texte dans une table effectuée aléatoirement

overpower Messages postés 16 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 août 2005 - 24 août 2005 à 14:55
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 25 août 2005 à 16:36
Bonjour,

j'ai un gros souci et j'aimerais savoir si quelqu'un pourrait me sortir de ma galère.

Voici le probleme:

Je veux importer des fichiers texte de taille conséquente dans des tables access, et j'utlise pour l'instant la commande :
DoCmd.TransferText A_IMPORTFIXED....
Les importations s'effectuent sans erreur mais lorsque je refais les même importations sur les même fichiers, des données sont des fois aux mauvaises lignes, càd que des bloc de ligne de donnée sont pas à la meme place entre 2 importations identiques du meme fichier vers le meme tableau et celà de façon aléatoire puisque j'ai effectué la meme manipulation plusieurs fois de suite, les données se deplacent différemment à chaque fois aussi. Il n'y a pas de perte de donnée, mais il ya des changements de position concernant les données.
Ya t il des limites de taille de texte pour cette commande? (dans mon exemple fichier texte de 10 mo)
Merci de bien vouloir m'eclaircir à ce sujet car je galere vraiment trop dessus. Mes données doivent etre dans le meme ordre dans le tableau que sur le fichier importé et ce n'est pas le cas....

Merci infiniment à ceux qui veuillent bien m'aider.

8 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 août 2005 à 15:29
salut

Les SGBD ont leur propres facon de stocker les données. je ne sais pas de quoi ca depend, mais en tout cas tu ne peux jamais etre sur de l'ordre physique dans lequelles les données importées vont etre stockée.

donc quand tu va faire un SELECT simple sur ta table, il est normal que tes données n'apparraissent pas dans le meme ordre a chaque fois

si tu veux garder un ordre, il faut le faire de facon explicite.

par exemple, il faut que tu rajoute des indices dans ton fichier texte pour chaque ligne :
1,mes donnees...
2, mes donnees
etc

ensuite quand tu fait une requete, tu rajoute un clause ORDER BY indice
et tes données seront dans le meme ordre que dans ton fichier

enfin ca c'est un exemple pour t'expliquer un peu le pourquoi du comment :)
je pense que tu peux te passer de cette colonne supplémentaire en classant sur une colonne existante, ou en allant chercher tes données en fonction de ton besoin.

mais cela depend de ce que tu veux faire de tes données.

quel traitement veux tu effectuer dessus ? en quoi cela te gene qu'elles ne soient pas dans le meme ordre.

exlique un peu, il y a peut etre un moyen plus judicieux de resoudre ton probleme
0
overpower Messages postés 16 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 août 2005
24 août 2005 à 15:41
Merci de preter attention à mon problème :-)

Bah en fait j'importe des fichiers de données sous format texte afin d'effectuer des requets update dessus pour modifier certaines données et puis j'exporte ces données dans des fichiers texte de sortie.
Cette manipulation je dois la faire 2 fois sur 2 groupes différents de fichier mais qui sont sensé etre identiques. Avec un comparateur de fichiers je compare les fichiers résulants des ces 2 groupes et je dois reperer les différences.
Mais dans mon cas, des différences sont générées par mes importations et donc du coup je me retrouve avec un rapport notifiant des différences ne provenant pas des origines, c'est à dire des 2 systèmes source d'où sont issue ces 2 groupes de fichier.
Je sais pas si c tres clair....

Tout ça pour dire que l'ordre de mes données est importante et que je ne peux faire abstraction pour la comparaison
0
overpower Messages postés 16 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 août 2005
24 août 2005 à 15:46
J'oubliais, je ne peux pas changer les fichiers texte puisqu'elles proviennent d'une base de donnée dont je n'ai pas du tout accès, ils sont stockés sur un partage en lecture seul
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 août 2005 à 17:34
si si ca va c'est clair

si tu peux pas modifier tes fichiers texte, as tu essayé de mettre un autoincrément dans ta table ?

la je ne suis pas sur de ce que j'avance, mais je pense que les données sont importees dans l'ordre du fichier, et c'est qu'ensuite que le SGBD les classe autrement en fonction des son humeur :)
donc si tu met un auto increment , le numero 1 correspondra a la ligne 1 de ton fichier...

essaie et dis moi si ca fonctionne

bon courage ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
overpower Messages postés 16 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 09:46
comment fais tu pour ajouter l'autoincrément? je l'ai pas vu j'ai l'impression, je cherche et je te dis de suite !! merci en tout cas de tes conseils ^^
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
25 août 2005 à 10:41
J'ai regardé sur access 2000 anglais :

dans les types de ton champs, j'ai "AutoNumber"
en Francais je pense que ca doit etre sensiblement pareil.

et tu peux choisir si il met une nouvelle valeur en incrementant ou au hasard, choisi l'incrément.

voila, par contre le fait de rajouter une colonne ca va peut etre modifier la facon dont tu dois faire ton import.
0
overpower Messages postés 16 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 14:42
J'ai testé en ajoutant un autoincrement mais le problème là c'est que je ne peux plus exporter avec la colonne que j'ai rajouté!
Ya un moyen d'exporter les colonnes qu'on veut avec la commande DoCmd.Transferttext?
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
25 août 2005 à 16:36
la je ne sais pas je n'ai jamais utilisé ce composant.

regarde dans la doc

mais je pense que ca doit etre possible
0
Rejoignez-nous