Ah d'accord, beh en fait c'était un logiciel de caisse.
Le fichier se nommé cpv.mdb, et j'ai récupérer base de données nommée Import Articles. Et dans cette base, il n'y avait pas de signe monétaire
Version imprimable
Ah d'accord, beh en fait c'était un logiciel de caisse.
Le fichier se nommé cpv.mdb, et j'ai récupérer base de données nommée Import Articles. Et dans cette base, il n'y avait pas de signe monétaire
Je vais craquer là ! :arf:
Je te parle du fichier CSV que tu m'as envoyé :
et que tu as dit avoir importé dans une nouvelle BDD, ce qui y a créé une table :Citation:
Voici le fichier CSV que j'ai. Je te l'envoie en pièces jointes de ce commentaire
Donc... :zen:Citation:
Oui oui. C'est une base de données test. Il m'as crée une table 1 et a inséré les informations du fichier CSV (de 3 lignes d'informations seulement pour les tests).Citation:
Envoyé par CinéPhil
Quel est le nom de la base de données où tu as importé les données ?
Quel est le non de la table où les données ont été insérées ?
Dans cette table se trouve normalement une colonne PRICEBUY et une colonne PRICESELL, d'après l'entête de ton fichier CSV.
Dans ces deux colonnes, le symbole monétaire, apparemment €, y figure t-il après chaque prix, comme c'est le cas dans le fichier CSV ?
désolé :s.
Le nom de la base où j'ai exporté les informations est Articles. Ensuite, les informations n'étant pas épurées, etc...J'ai arrangé le fichier pour qu'il corresponde à ma table products. Et le fichier CSV vient de l'épuration de la base de données Articles.
Je m'excuse encore :s. Ai-je été clair ou toujours pas??:s
Euh...Citation:
Ai-je été clair ou toujours pas?? :s
Si j'ai bien compris, la table où ont été importées les données s'appelle "Articles" dans une base de données qui s'appelle aussi "Articles" ?
Essaie cette requête pour voir si au moins elle fonctionne :
Elle devrait donner le bon format pour les données à insérer ensuite dans la table products, avec l'identifiant correspondant à la catégorie pour éviter le message d'erreur que tu as eu pour non correspondance de clé étrangère.Code:
1
2
3
4
5
6
7 SELECT i.ID, i.REFERENCE, i.CODE, i.CODETYPE, i.NAME, CAST(LEFT(PRICEBUY, LENGTH(PRICEBUY) - 2) AS DECIMAL(10,2)) AS PRICEBUY, CAST(LEFT(PRICESELL, LENGTH(PRICESELL) - 2) AS DECIMAL(10,2)) AS PRICESELL, c.ID AS CATEGORY, i.TAXCAT, i.ATTRIBUTESET_ID, i.STOCKCOST, i.STOCKVOLUME, i.IMAGE, i.ISCOM, i.ISSCALE, i.ATTRIBUTES FROM Articles.Articles i INNER JOIN categories c ON c.NAME = i.CATEGORY
Ah je me suis mal exprimée je crois :s.
J'ai récupérer un fichier contenant mes enregistrements dans un logiciel. Le fichier s'appelait cpv.mdb. Ensuite j'ai trouvé une base Articles qui m'intéressait (avec prix, etc...), puis je l'ai épuré en fonction de ce que j'avais besoin et de la table products.
Les intitulé de la base de données dbname avec par exemple la table products provienne en fait d'un autre logiciel, dans lequel je souhaiterai importer mes données.
Enfin, dans le fichier CSV, les intitulé (PRICEBUY, PRICESELL, CATEGORY,...) c'est moi qui les ait remplacé dans le fichier CSV pour que cela corresponde avec ma table products.
Je suis sincèrement navrée je te jure, je sens que je ne suis pas explicite, mais je dois vraiment y arriver :(.
Un énorme merci pour ton aide
C'est peu de le dire ! Un vrai labyrinthe ton histoire ! :roll:
J'avais cru comprendre que tu avais réussi à transformer ce fichier, d'une manière ou d'une autre, en fichier CSV. Oui ou Non ?Citation:
J'ai récupérer un fichier contenant mes enregistrements dans un logiciel. Le fichier s'appelait cpv.mdb.
Si c'est non, on s'en fout de ce fichier maintenant ou c'est vraiment ces données là que tu veux importer ?
Une base est un ensemble de tables ! Il s'agit d'une table Articles ou d'une base de données nommé Articles ?Citation:
Ensuite j'ai trouvé une base Articles qui m'intéressait (avec prix, etc...)
C'est nativement du MySQL où ça vient encore d'ailleurs ?
Donc maintenant tu as ça sous quelle forme ?Citation:
, puis je l'ai épuré en fonction de ce que j'avais besoin et de la table products.
Une table Article qui correspond à la structure de données que tu m'as envoyée sous forme de fichier CSV ?
dbname ?Citation:
Les intitulé de la base de données dbname
On ne l'avait pas encore eue celle-là !
dbname est donc une base de données MySQL contenant un certain nombre de tables dont "products", "categories", "taxcategories" ?Citation:
avec par exemple la table products provienne en fait d'un autre logiciel, dans lequel je souhaiterai importer mes données.
Ce logiciel, qui apparemment utilise cette base de données dbname, n'a t-il pas une fonction d'importation de données ? Si oui, quels formats de données accepte t-il ?
Et ce fichier CSV, tu l'as généré comment ? Il vient d'où ?Citation:
Enfin, dans le fichier CSV, les intitulé (PRICEBUY, PRICESELL, CATEGORY,...) c'est moi qui les ait remplacé dans le fichier CSV pour que cela corresponde avec ma table products.
Il faut de la rigueur et de la précision en informatique !
Essaie de simplement répondre à mes question en les citant, on gagnera du temps.
En attendant, on vient d'entammer la troisième page de cette discussion !
Vraiment navrée :sCitation:
C'est peu de le dire ! Un vrai labyrinthe ton histoire !
Ce sont les données que je souhaite importer à ma nouvelle base de données dbname de mon nouveau logiciel. Enfin il y a plus de données que dans le fichier que je t'ai envoyé, mais pour l'instant ce n'est pas grave.Citation:
J'avais cru comprendre que tu avais réussi à transformer ce fichier, d'une manière ou d'une autre, en fichier CSV. Oui ou Non ?
Si c'est non, on s'en fout de ce fichier maintenant ou c'est vraiment ces données là que tu veux importer ?
C'est donc une table Articles alors. non ce n'est pas du MySQL je pense nativement.Citation:
Une base est un ensemble de tables ! Il s'agit d'une table Articles ou d'une base de données nommé Articles ?
C'est nativement du MySQL où ça vient encore d'ailleurs ?
Pour l'instant j'ai un fichier CSV, ou XLS mais bon c'est moins important je pense :). J'ai modifié la table Articles de l'ancien logiciel, car beaucoup d'informations m'étaient inutiles dans le nouveau, pour obtenir ce fichier.Citation:
Donc maintenant tu as ça sous quelle forme ?
Une table Article qui correspond à la structure de données que tu m'as envoyée sous forme de fichier CSV ?
Ah :s. dbname est le nom de ma nouvelle base de données MySQL pour mon nouveau logiciel.Citation:
dbname ?
On ne l'avait pas encore eue celle-là !
Oui exactement.Citation:
dbname est donc une base de données MySQL contenant un certain nombre de tables dont "products", "categories", "taxcategories" ?
Ce logiciel, qui apparemment utilise cette base de données dbname, n'a t-il pas une fonction d'importation de données ? Si oui, quels formats de données accepte t-il ?
Non malheureusement il n'en a pas, on ne peut pas importer d'informations directement dans le logiciel :s.
J'ai ouvert la base de données du fichier cpv.mdb, copié la table Articles, épuré et modifié, puis Enregistrer Sous en CSV.Citation:
Et ce fichier CSV, tu l'as généré comment ? Il vient d'où ?
Promis, je ferai très attention par la suite.Citation:
Il faut de la rigueur et de la précision en informatique !
Essaie de simplement répondre à mes question en les citant, on gagnera du temps.
En attendant, on vient d'entammer la troisième page de cette discussion !
Merci merci
Maintenant que j'y pense, l'extension .mdb, ce ne serait pas du Microsoft Access par hasard ?Citation:
J'ai ouvert la base de données du fichier cpv.mdb
Tu as ouvert cpv.mdb avec quel logiciel ?
Je crois que la boucle est bouclée entre les différentes choses que tu évoques...
Au départ, tu as dit ça :
Suite à quoi j'ai demandé ça :Citation:
Envoyé par eleanor62
Ce à quoi tu m'as répondu ça :Citation:
Envoyé par CinéPhil
Ainsi que ça :Citation:
Envoyé par eleanor62
Donc les données que tu souhaites importer dans dbname.products sont bien les données du fichier CSV généré à partir de la table Articles de la base de données cpv.mdb.Citation:
Envoyé par eleanor62
Au passage :
Pas terrible comme nom de BDD ! C'est ton oeuvre ou c'est le fournisseur du nouveau logiciel qui l'a appelée comme ça ? 8OCitation:
Ah :s. dbname est le nom de ma nouvelle base de données MySQL pour mon nouveau logiciel.
Et ôte moi d'un doute. Quand tu dis "mon nouveau logiciel", c'est bien un logiciel existant pour lequel tu dois importer les données, ce n'est pas toi qui doit développer ce nouveau logiciel ?
Je referme le passage et je reviens au coeur du sujet sinon nous allons encore nous perdre...
La première étape, si elle n'est pas déjà faite, c'est d'importer ce fichier CSV dans MySQL dans une table d'importation.Citation:
Envoyé par eleanor62
J'avais cru comprendre que avais réussi à le faire, au moins partiellement, et je te demandais comment s'appelle la base de données MySQL et la table dans laquelle ont été importées les données.
Oui oui c'est le format de Microsoft Access. Mais comme je ne l'avais pas (j'ai OpenOffice), j'ai téléchargé AxBase mais bon, l'ouverture sur Access est mieux (je l'avais sur mon ordinateur portable). Si un autre logiciel est plus adéquate et gratuit, je suis preneuse :).Citation:
Maintenant que j'y pense, l'extension .mdb, ce ne serait pas du Microsoft Access par hasard ?
Tu as ouvert cpv.mdb avec quel logiciel ?
Oui exactement exactement, c'est même plus qu'un souhait maintenant :).Citation:
Donc les données que tu souhaites importer dans dbname.products sont bien les données du fichier CSV généré à partir de la table Articles de la base de données cpv.mdb.
Oui on m'avait dit de mettre dbname car c'était pour suivre un tutoriel pour connecter le logiciel à la base MySQL.Citation:
Pas terrible comme nom de BDD ! C'est ton oeuvre ou c'est le fournisseur du nouveau logiciel qui l'a appelée comme ça ?
Ah non non, le logiciel existe déjà, moi je souhaite pour l'instant juste récupérer mes données de mon ancien logiciel.Citation:
Et ôte moi d'un doute. Quand tu dis "mon nouveau logiciel", c'est bien un logiciel existant pour lequel tu dois importer les données, ce n'est pas toi qui doit développer ce nouveau logiciel ?
La base de données où j'ai testé l'importation je l'ai appelé testbase, et la table a été crée automatiquement, et elle s'appelle table 1Citation:
J'avais cru comprendre que avais réussi à le faire, au moins partiellement, et je te demandais comment s'appelle la base de données MySQL et la table dans laquelle ont été importées les données.
J'espère avoir été un peu plus compréhensible :s
:ccool:Citation:
La base de données où j'ai testé l'importation je l'ai appelé testbase, et la table a été crée automatiquement, et elle s'appelle table 1
On va finir par y arriver...
Je suppose d'ailleurs qu'elle ne s'appelle pas "table 1" mais plutôt "table1" ou "table_1" ?
Donc j'en reviens à ma requête, dont j'ai modifié le nom de la base et de la table, et que tu vas tester :
Code:
1
2
3
4
5
6
7 SELECT i.ID, i.REFERENCE, i.CODE, i.CODETYPE, i.NAME, CAST(LEFT(PRICEBUY, LENGTH(PRICEBUY) - 2) AS DECIMAL(10,2)) AS PRICEBUY, CAST(LEFT(PRICESELL, LENGTH(PRICESELL) - 2) AS DECIMAL(10,2)) AS PRICESELL, c.ID AS CATEGORY, i.TAXCAT, i.ATTRIBUTESET_ID, i.STOCKCOST, i.STOCKVOLUME, i.IMAGE, i.ISCOM, i.ISSCALE, i.ATTRIBUTES FROM testbase.table1 i INNER JOIN dbname.categories c ON c.NAME = i.CATEGORY
Non non, il y a bien un espace entre table et 1 :s.Citation:
On va finir par y arriver...
Je suppose d'ailleurs qu'elle ne s'appelle pas "table 1" mais plutôt "table1" ou "table_1" ?
ok ok je teste la requête de suite. Il faut être dans testbase?? Ou à un autre endroit? (désolé si cette question est bête :s)
Ça m'étonne beaucoup mais dans ce cas je transforme légèrement la requête :
Code:
1
2
3
4
5
6
7 SELECT i.ID, i.REFERENCE, i.CODE, i.CODETYPE, i.NAME, CAST(LEFT(PRICEBUY, LENGTH(PRICEBUY) - 2) AS DECIMAL(10,2)) AS PRICEBUY, CAST(LEFT(PRICESELL, LENGTH(PRICESELL) - 2) AS DECIMAL(10,2)) AS PRICESELL, c.ID AS CATEGORY, i.TAXCAT, i.ATTRIBUTESET_ID, i.STOCKCOST, i.STOCKVOLUME, i.IMAGE, i.ISCOM, i.ISSCALE, i.ATTRIBUTES FROM testbase.`table 1` i INNER JOIN dbname.categories c ON c.NAME = i.CATEGORY
Peu importe, j'ai préfixé les tables de la requête avec le nom de leur base.Citation:
ok ok je teste la requête de suite. Il faut être dans testbase?? Ou à un autre endroit? (désolé si cette question est bête :s)
Merci merci.
Voici la réponse de MySQL :
Et le tout encadré en vertCitation:
MySQL a retourné un résultat vide (aucune ligne). ( Traitement en 0.0006 sec )
Au temps pour moi ! :oops:
Quand j'avais posé cette question :
Tu avais répondu :Citation:
Envoyé par CinéPhil
Je modifie la requête :Citation:
Oui oui, cela correspond aux ID de mes catégories dans ma table catégories.
Code:
1
2
3
4
5
6
7 SELECT i.ID, i.REFERENCE, i.CODE, i.CODETYPE, i.NAME, CAST(LEFT(PRICEBUY, LENGTH(PRICEBUY) - 2) AS DECIMAL(10,2)) AS PRICEBUY, CAST(LEFT(PRICESELL, LENGTH(PRICESELL) - 2) AS DECIMAL(10,2)) AS PRICESELL, c.ID AS CATEGORY, i.TAXCAT, i.ATTRIBUTESET_ID, i.STOCKCOST, i.STOCKVOLUME, i.IMAGE, i.ISCOM, i.ISSCALE, i.ATTRIBUTES FROM testbase.`table 1` i INNER JOIN dbname.categories c ON c.ID = i.CATEGORY
J'ai toujours la même réponse :$
Citation:
MySQL a retourné un résultat vide (aucune ligne). ( Traitement en 0.0006 sec )
Je suis navrée mais je vais devoir faire un peu de route :(. Mais je te dis à très bientôt je l'espère :$. Et je vais encore essayer et si je réussis, je reviendrai bien entendu.
merci 1000 fois pour ton aide précieuse. J'espère quand même arriver à importer mes données, car sans ça, je suis bloquée :s
Bonjour CinePhil,
J'ai une petite bonne nouvelle :), j'ai réussi à insérer un article avec un INSERT INTO. En fait, la syntaxe ne correspondait pas à ce qu'il voulait. :). ouf :).
Le petit souci c'est maintenant pour insérer toutes les données, car j'ai essayé avec 2, et je dois mettre le insert à chaque fois :s.
Voilà voilà les nouvelles :).
Si tu as des milliers d'articles, tu n'es pas arrivée ! :aie:
On peut voir ta requête d'insertion, histoire d'éclairer le problème que tu rencontres avec le SELECT ?
Oui justement, il n'y a pas de moyen de faire une insertion du fichier complet en une seule fois?
Oui bien spur voici la requête :
Code:
1
2 INSERT INTO `products`(`ID`, `REFERENCE`, `CODE`, `CODETYPE`, `NAME`, `PRICEBUY`, `PRICESELL`, `CATEGORY`, `TAXCAT`, `ATTRIBUTESET_ID`, `STOCKCOST`, `STOCKVOLUME`, `IMAGE`, `ISCOM`, `ISSCALE`, `ATTRIBUTES`) VALUES (3585,18,"0015133","NULL","Pigne PM blanc vieilli H28","7,24","17,50","03c62f98-cac0-48bf-bd27-2461a8a5a95e",'000','22','1','1',"NULL,b'0',b'0',NULL);
Elle ne va pas du tout ta requête ! :aie:
1 ) En SQL, les valeurs textuelles s'entourent d'apostrophes, pas de guillemets !
2) Les nombres décimaux s'écrivent avec un point, pas une virgule !
3) "NULL" est une chaîne contenant le mot NULL, pas le marqueur SQL NULL !
Je reprends la structure de ta table products que tu as donnée :
Ta requête d'insertion devrait donc être la suivante :Citation:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 CREATE TABLE `products` ( `ID` varchar(255) NOT NULL, `REFERENCE` varchar(255) NOT NULL, `CODE` varchar(255) NOT NULL, `CODETYPE` varchar(255) DEFAULT NULL, `NAME` varchar(255) NOT NULL, `PRICEBUY` double NOT NULL, `PRICESELL` double NOT NULL, `CATEGORY` varchar(255) NOT NULL, `TAXCAT` varchar(255) NOT NULL, `ATTRIBUTESET_ID` varchar(255) DEFAULT NULL, `STOCKCOST` double DEFAULT NULL, `STOCKVOLUME` double DEFAULT NULL, `IMAGE` mediumblob, `ISCOM` bit(1) NOT NULL DEFAULT b'0', `ISSCALE` bit(1) NOT NULL DEFAULT b'0', `ATTRIBUTES` mediumblob, PRIMARY KEY (`ID`), UNIQUE KEY `PRODUCTS_INX_0` (`REFERENCE`), UNIQUE KEY `PRODUCTS_INX_1` (`CODE`), UNIQUE KEY `PRODUCTS_NAME_INX` (`NAME`), KEY `PRODUCTS_FK_1` (`CATEGORY`), KEY `PRODUCTS_TAXCAT_FK` (`TAXCAT`), KEY `PRODUCTS_ATTRSET_FK` (`ATTRIBUTESET_ID`), CONSTRAINT `PRODUCTS_ATTRSET_FK` FOREIGN KEY (`ATTRIBUTESET_ID`) REFERENCES `attributeset` (`ID`), CONSTRAINT `PRODUCTS_FK_1` FOREIGN KEY (`CATEGORY`) REFERENCES `categories` (`ID`), CONSTRAINT `PRODUCTS_TAXCAT_FK` FOREIGN KEY (`TAXCAT`) REFERENCES `taxcategories` (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Maintenant, revenons à ton problème d'insertion en masse...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 INSERT INTO `products` ( `ID`, `REFERENCE`, `CODE`, `CODETYPE`, `NAME`, `PRICEBUY`, `PRICESELL`, `CATEGORY`, `TAXCAT`, `ATTRIBUTESET_ID`, `STOCKCOST`, `STOCKVOLUME`, `IMAGE`, `ISCOM`, `ISSCALE`, `ATTRIBUTES` ) VALUES ( '3585', '18', '0015133', NULL, 'Pigne PM blanc vieilli H28', 7.24, 17.50, '03c62f98-cac0-48bf-bd27-2461a8a5a95e', '000', '22', 1, 1, NULL, b'0', b'0', NULL );
Donne la structure de ta table d'importation, c'est à dire le résultat complet de la requête SHOW CREATE TABLE testbase.`table 1`, puisque apparemment, cette table est mal nommée `table 1` et est située dans la BDD testbase.