ODBC et JDBC

Fermé
Sylvain - 18 sept. 2003 à 01:11
 android - 9 févr. 2010 à 03:46
Bonjour,

J'aimerais entendre votre avis a propos des differences entre JDBC et ODBC.


D'apres mes recherches les differences entre JDBC et ODBC sont :

1- ODBC n'est pas portable (ne tourne que sur Windows) alors que JDBC peut tourner quelque soit le systeme d'exploitation

2- On ne peut utiliser JDBC que'avec JAVA alors que ODBC est multi-langage (C++, VB, Delphi ...)

3- ODBC necessite une installation sur chaque poste d'excecution, JDBC non

4- Avec ODBC ,pour ecrire un programme qui puisse tourner sur n'importe quel type de bases de donnees (Oracle, Access, Db2, Informix ...), il faut ecrire toutes les requetes SQL en prenant soin d'utiliser le standard commun a tous ces SGBD.

- Avec JDBC, il suffit d'ecrire les requetes SQL en respectant les syntaxe SQL propres a JAVA afin d'etre certain que les requetes SQL seront comprises par l'ensemble des SGBD (a condition d'avoir le driver correspondant).

5- JDBC est plutot utilise pour les applications WEB.

Et j'ai egalement deux questions:

6- Est il possible avec JDBC et ODBC de creer la base de donnees (par exemple au moment de l'installation d'une application) en fonction du SGBD.


7- JDBC est plus long en terme de temps d'acces a la base de donnees qu'ODBC


Merci de me corriger si ce que j'ai ecrit n'est pas correct ou de le completer si il y a d'autres differences importantes que je n'ai pas mentionnee.

Merci d'avance

10 réponses

darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
19 sept. 2003 à 16:25
Un autre système pourrait t'intéresser Sylvain le C-JDBC (si le Java ne te dérange pas).

Selon ce que j'ai compris, il doit permettre d'utiliser un même programme sur différente bdd. C'estbien ce que tu veux?

En plus, il gère apparement le RMI/JDBC.

plus d'infos sur le site :
http://c-jdbc.objectweb.org
et va voir la documentation

Darkhorkeu
1
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
18 sept. 2003 à 09:06
Salut

Je ne m'y connais pas très bien sur ce domaine, mais je crois que JDBC est un complément à l'ODBC pour pouvoir programmer en Java en utilisant le système ODBC.

JDBC n'est pas un équivalent ou en remplaçant de l'ODBC comme je le comprend dans ton message.

Ses 2 mécanismes sont plutôt faits pour fonctionner ensemble.

Attendons les renseignements d'une tierce prsonne...

++
0
Dark a raison

JDBC est une API de programmation java permettant d'attaquer une bdd. ODBC est un driver permettant d'attaquer les bases microsoft (principalement Access)
Si tu veux créer un eappli en Java qui attaque access; il te faut JDBC puis un "bridge" JDBC/ODBC puis une couche ODBC sur la base Access !!! ouf
Si en plus tu veux faire ca a distance il te faut les RMI/JDBC permettant a java de faire du JDBC comme si il etait en local..
A+
0
Merci pour ces informations.

A votre avis, sachant qu'il existe des drivers ODBC pour pratiquement tous les SGBD (pas seulement pour Microsoft), n'est il pas possible de developper une application (en VB par exemple et utilisant ODBC) qui a l'installation creerait la base de donnees en fonction du SGBD present ?

En gros, est ce que grace aux differents drivers ODBC on peut connecter une meme application a differents types de SGBD sans changer le code (uniquement en choisissant le driver ODCB correspondant au SGBD) ?
0
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
18 sept. 2003 à 16:10
Oui, normalement, c'est la tout l'intérêt de l'ODBC.

Cependant dans ce cas, il faut faire attention aux types des données vu qu'elles peuvent être différentes d'une base à l'autre.
C'est pourquoi il faut programmer en fonction d'un standard SQL. La norme ANSI SQL-92 (SQL2) est le standard respecté par la plupart des SGBDR actuels.
SQL-99 (SQL3) est le nouveau standard.

Je suis actuellement sur un projet de ce genre mais je n'y connais pas encore grand chose.
Si j'ai plus de détail, je t'en fais part.

a+

Darkhorkeu
0

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

Posez votre question
En effet, ca m'interesse si tu as plus de details!

D'ailleurs est ce que tu sais si il est possible de creer une base de donnees ODBC lors de l'installation d'une application par exemple ?

Sylvain
0
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
19 sept. 2003 à 08:43
Pour le moment, je n'en est aucune idée.

C'est peut-être possible en utilisant les fonctions présentées aux pages suivantes :
http://msdn.microsoft.com/library/en-us/odbc/htm/odch22pr.asp
http://msdn.microsoft.com/library/en-us/odbc/htm/odch23pr.asp

Certaines de ses fonctions permettent de configurer les drivers et les DSN, mais également de créer des sources de données.

ex : ConfigDriver, ConfigDSN, SQLConfigDataSource, SQLCreateDataSource

Darkhorkeu
0
Merci pour ces infos, je vais aller voir ca de plus pres.

Par ailleurs, est ce que tu connais un peu le X/Open SQL CAE specification.

D'apres l'article ci-dessous :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch02pr_16.asp

Ce serait une grammaire SQL pour ODBC qui permettrait de compenser les differences de syntaxes SQL entre les differents SGBDs.
0
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
19 sept. 2003 à 18:15
Non, je ne connais pas du tout le X/Open SQL CAE.
0
http://java.sun.com/j2se/1.3/docs/guide/jdbc/getstart/bridge.doc.html

9.3.1 Using the Bridge from an Applet
JDBC used with a Pure Java JDBC driver works well with applets. The Bridge driver does not work well with applets.
0
darkhorkeu Messages postés 73 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 9 juin 2007 30
19 sept. 2003 à 16:03
C'est juste pour faire une remarque.

Pour utiliser la Java avec une base de données, on n'est pas forcé d'utiliser un bridge JDBC/ODBC.
En fait, on peut se connecter directement à une base de données grâce au driver JDBC, sans avoir besoin de l'ODBC. Il existe un driver JDBC différent pour chaque bdd existante.

Si tu ne veux pas développer en Java, c'est sûr que JDBC te sera inutil.

Au fait Sylvain, suite à ta question <5>, ODBC n'est pas une bdd, c'est un driver qui te permet de t'y connecter. ODBC est une "source de données" que tu peut apparement créer et modifier par l'intermédiaire des fonctions que j'ai citées précèdement.

Darkhorkeu
-1