Cherche doc csv

benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 - 22 avril 2003 à 16:13
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 13 juin 2003 à 18:10
bonjour,
je recherche de la documentation sur une connection a un fichier csv ou plutot un exemple de connection
merci d avance pour vos trouvailles

:clown) Benohite :-p

14 réponses

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
22 avril 2003 à 23:44
Si tu sais utiliser JDBC, tu peux créer une connexion ODBC par un DNS fichier excel

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
23 avril 2003 à 09:12
la il va falloir que tu m en dise un peux plus parce que je n est pas tout suivi

:clown) Benohite qui ne comprend pas le francais :-p
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
24 avril 2003 à 00:17
Au fait une connexion de quelle sorte (réseau par exemple, ou tu veut ouvrir un fichier CSV comme un fichier texte et le lire) ? Pour quel usage ?

Je te pose cette question car peut-être la solution est trop alambiquée pour ce que tu veux faire.

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
24 avril 2003 à 09:14
en fait j ai creer une classe generique qui initialise des drivers (passe en parametre) et apres avoir herite cette classe 3 fois et surcharge ses methode j obtien une classe de connection postgresql qui permet l envoi de requete l affichage de la table ... etc
j aimerais bien repartir de la classe generique pour obtenir (apres herritage) une classe de connection aux fichiers csv
je veux donc ouvrir des fichiers csv locaux afin de generer par la suite une bdd a partir de ces fichiers
voila maintenat tu sais tout

ps: les drivers csvjdbc que j ai telecharge ont le meme mode de fonctionnement que des drivers jdbc classiques
class.forname...
drivermanage.getconnection.....

:clown) Benohite :-p
0

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

Posez votre question
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
24 avril 2003 à 21:19
Les fichiers CSV sont des fichiers textes comme les autres, de plus tu me dis qu'ils sont locaux à ton application, le mieux tout de même est de les ouvrir par un FileInputStream.
Dis moi si ça te va. Je pourrais alors plus facilement te fournir une classe permettant de les utiliser afin d'alimenter ta BdD.

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
25 avril 2003 à 09:18
oui c est ce que j avais penser faire au debut car c est vrai que c est plus logique et plus simple mais en utilisant les drivers csv jdbc on peut faire des requetes sql sur le fichier comme si c etait une bdd et etait la tout l avantage
pour l instand j arrive juste a initialise les drivers et a faire des requetes par le biais d un objet statement
le probleme est qu un jar est fourni avec les drivers contenant des classes specifiques: CsvConnection, CsvStatement....etc et lorsque que je compile mon source utilisant ces classes j ai toujours une erreur
> bad class file
et je n ais qque les .class donc ca me pose un petit pb
:clown) Benohite :-p
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
25 avril 2003 à 19:06
Moi aussi j'ai réussi seulement à me connecter mais j'ai pas réussi à executer correctement une requette mais moi je me suis servi du driver CSV de Windows en passant par les drivers JDBC pour ODBC (package sun.jdbc.odbc) fourni avec je JDK 1.4.1 (présent dans le fichier rt.jar du JDK).

La requete s'est bien exécutée en fait mais je ne peux pas récupérer les données à partir du ResultSet

J'ai d'ailleurs envoyé un mail chez sun pour résoudre le problème; je n'est pas encore eu de réponse

Mais tu sais c'est normal que ça marche difficilement car un fichier CSV ne contient pas de Meta-Données c'est dire d'informations sur les colonnes comme le type, la longueur ou encore le nom des chaines.

Je vais essayer de développer un driver JDBC de type 3 ce soir je te ferais signe si j'y suis arrivé.

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
28 avril 2003 à 15:35
je pense que tu n as pas du comprendre mon pb ou je me suis mal explique bref je reprends
j ai reussi a me "connecter" au fichier csv (a l aide des drivers
que j ai telecharger sous format jar - classique)
j arrive aussi a effectue des requetes sur ce fichiers et meme a en visualiser le resultat
pour faire tout cela j utilise les classes classique jdbc:
class.forname, connection, drivermana..., statement, resulset
mais en ouvrant le jar que j ai telecherger je me suis apercu qu en plus des drivers (Driver.class) il contenait aussi d autres classe specifiques aux csv:
Csvconnection, CsvresultSet, CsvStatement...etc
et ceux sont cex classes que je n arrive pas a utiliser
je pense pourtant avoir positionner ma variables classpath correctement sinon je ne pourrais pas utiliser les drivers
je pense que le pb doit venir de classes du jar
mais je n en suis pas non plus sur
enfin voila tout mon pb
en tout cas merci pour ton aide

:clown) Benohite :-p
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
28 avril 2003 à 19:17
Désolé j'ai dû lire trop vite.

Dis moi ce que tu as mis dans ton classpath. Sur quel OS es-tu? Si tu es sous Windows XP ne mets pas ton jar en dernier dans le Classpath (j'ai entendu dire qu'il y aurrait des soucis dans ce cas)

Quel est le message d'erreur qui t'es envoyé ?

En effet, lorsque tu fais un connect à partir de ton driver il va instancier la classe Csvconnection. C'est ainsi que fonctionne tout driver JDBC, il implemente les interfaces de java.sql

En fait tu n'utilise pas réellement les classes classiques (qui sont en fait des interfaces ce qui est différent en Java). T'utilises en fait des instances des classes de ton jar mais puiqu'elles doivent implémenter les interfaces de java.sql, tes variables peuvent être du type de chaque interface de java.sql.

Mais je ne comprends comment peux-tu savoir si tu arrive à effectuer des requettes si tu dis que tu n'arraives pas à utiliser les classes du jar.

Attention tu ne dois pas utiliser les classes du jar directement en faisant par exemple:

Driver d;
Csvconnection c= (Csvconnection)d.connect(...);

JDBC ne s'utilise pas ainsi.
Tu dois faire :

Driver d;
java.sql.Connection c= d.connect(...);

C'est l'avantage de JDBC on l'utilise de manière abstraite et on utilise chaque driver JDBC comme une boite noire grace aux interface d'où l'utilité des interfaces contrairement à l'héritage. Les interfaces permet par cette fonctionnalité d'utiliser des objets polymorphes ce qui n'est pas le cas d'un héritage plus ou moins profond.

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
29 avril 2003 à 09:14
ok je comprends mieux maintenant
en fait au debut j ai cree une classe Connect qui se contente d initialise les drivers passse en param (champ string) par une methode loadDriv ensuite j ai cree une classe BddConnect derivée de connect qui utilise la methode loadDriv et qui fait la connection a un serveur de bdd via un champ string puis j ai encore deriveé la classe bddconnect en bddmodif qui utilise la methode connect de sa superclasse et qui en plus implemente deux methode d envoi de requete (requete de consultation et de modification) et enfin une derniere classe bddaffich (derivee de bddmodif) qui implement juste une methode d affichage des requetes
j ai fait tt cela en restant le plus generique possible pour que mon package fonctionne avec toutes les bases a condition d avoir les drivers associes
et je voulais en repartant de la classe connect, la derivee en CsvConnect ...etc et c est dans cette classe que je voulais utiliser CSVConnection CsvResultset...etc mais d apres ce que j ai compris ca va etre beaucoup plus simple que ca car je n est pas besoin d appeler les classes du jar, en fait juste en changeant le nom du drivers et l url de connection ca devrais marcher or comme ces derniers sont passes en parametre par l utilisateur, en fait je n ais plus rien a faire, j ai juste a utiliser les classes decrites precedement (bddconnect ....) avec le bon string en parm et ca roule

je vais donc de ce pas teste tout cela :-))
je te remercie pour tes explications qui m ont ete je dois l avoue tres utiles
en de bon entendeur salut et merci encore

:clown) Benohite :-p
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
30 avril 2003 à 00:14
Exactement c'est le principe même l'abstraction des classes et du polymorphisme en Programmation Orientée Objet.

Tout est utilisé comme des boites noire et peut être réutiliser pour fournir comme ici un driver JDBC.

C'est là la vrai puissance de Java !!

Grâce à ça, JDBC, avec le driver associée à ta BdD, s'utilise en quelque lignes de code.

Core Breaker :)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
30 avril 2003 à 08:45
oui et d ailleurs apres une batterie de test tout marche comme prevu et meme sur les csv
donc plus de pb a l horizon
voila
:clown) Benohite :-p
0
darktonight Messages postés 51 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 23 juillet 2004 1
13 juin 2003 à 15:51
Ca à l'air trés interessant pour mon objectif (recuperer des requete sql, mettre leur résultats dans des excel et les retraités ensuites), pourrais tu me fournir ton code?
Merci
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
13 juin 2003 à 18:10
Je l'ai commncé mais je l'ai abandonné que j'ai su que tu avais toouvé une solution. J'ai effacé tout le projet car non achévé. Désolé !

Core Breaker :)
0
Rejoignez-nous