Java et paramètre odbc

Fermé
patoche - 27 sept. 2008 à 23:40
 patoche - 30 sept. 2008 à 21:32
Bonjour,

J'ai créé une application en java qui sauvegarde des données dans une base de donnée access via l'api ODBC.
Lorsque j'ajoute ou modifie une donnée, deux requettes sont émit par l'application. Une première qui permet l'ajout ou la modification de donnée, suivit automatiquement d'une deuxième requette qui permet la mise à jour de l'application afin de prendre en compte l'ajout ou la modification de donnée qui venait d'être effectué.

Initialement j'avais créé un lien entre ODBC et la base de donnée via l'administrateur de source de données ODBC qui se trouve dans le panneau de configuration. Ainsi je pouvais ajouter des données via la première requette mais aucune mise à jour ne s'effectuait. Dans les options avancées de l'administrateur de source de données ODBC, j'ai modifié le MaxBufferSize qui était de 2048 à 128. Et là, la mise à jour s'éffectuait. En diminuant la taille du buffer, j'obligeait la base de donnée à sauvegarder, avant que l'application n'envoie sa deuxième requette. Auparavant la première requette restait dans le buffer alors que la deuxième requette arivait, donc pas de mise à jours.

Super ça marche. Oui mais losrque je veux installer l'application sur un autre ordinateur, je suit obligé de créer manuellement le lien entre ODBC et la base de donnée via l'administrateur de source de données ODBC. Ca rend l'installation un peut compliqué pour un novice en informatique. C'est alors que j'ai trouver ce bout de code :

connexion=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/gestprod_db.mdb",id,mdp);

Ainsi plus besoin de créer manuellement le lien, il est créé automatiquement par l'application. Cependant ce code ne permet pas de changer la taille du buffer qui est par défaut à 2048. Je retrouve donc mes problèmes de mise à jour. Existe-il un code qui me pernet de parametrer la taille du buffer de l'api ODBC?

Merci
A voir également:

3 réponses

J'espère être assez claire, aidez moi svp!
0
J'ai trouver un code interessant a propos d'ODBC :

SQLRETURN SQLDriverConnect( SQLHDBC ConnectionHandle,
SQLHWND WindowHandle,
SQLCHAR * InConnectionString,
SQLSMALLINT StringLength1,
SQLCHAR * OutConnectionString,
SQLSMALLINT BufferLength,
SQLSMALLINT * StringLength2Ptr,
SQLUSMALLINT DriverCompletion );


Comment doit-je utiliser ce code dans mon application en java? SQLSMALLINT BufferLength, semble définire la taille du buffer, mais comment écrire le code qui me permettrait de changer la taille du buffer de l'API ODBC qui est à 2048?
0
Problème résolut!!!

Il falait intégrer Cachesize=128 ce qui donne :

connexion=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/gestprod_db.mdb;Cachesize=128",id,mdp);

Solution trouvé sur le site java.sun. Maintenant ça roule impec!
0