OVH Cloud OVH Cloud

Access 2000 Vs DB2

2 réponses
Avatar
pascal
Bonjour,

J'attaque des tables DB2 depuis ODBC avec Access. Avec=20
Access 97, aucun probl=E8me mais depuis que je suis pass=E9 en=20
Access 2000 toutes les tables contenants des colonnes de=20
type d=E9cimal ( qui =E9taient vues avant comme des r=E9el long)=20
sont bien vues maintenant comme des d=E9cimal ( ex Decimal
(5,3)) mais j'ai une erreur =E0 l'ouverture de la table=20
comme quoi la precision de la colonne d=E9cimale est trop=20
petite pour les donn=E9es contenues...et tout cela ,c'est un=20
comble en migrant de version. Le plus "marrant", si ma=20
base 2000, je l'a convertie en 97, j'ai de nouveau acc=E8s=20
aux tables !!!

2 réponses

Avatar
Benoit Compoint [MS]
Bonjour,

L'erreur que vous rencontrez est probablement causée par un bug dans le
driver ODBC que vous utilisez pour accéder aux bases DB2.

Je vous conseille de rechercher le fichier DB2CLI.INI sur votre disque dur
et de l'ouvrir avec le bloc-notes de Windows (Notepad.exe).
Vous trouverez probablement dans ce fichier une entrée PATCH2 (par exemple
PATCH2=1).

Si elle n'existe pas, créez la comme ci-dessous :
PATCH2

Si elle existe déjà (par exemple par exemple PATCH2=1),
ajoutez une virgule et la valeur 15 (par exemple PATCH2=1,15).

Cela forcera le driver ODBC à ignorer les paramètres régioanaux de Windows.
En particulier le driver ODBC ne sera plus perturbé par le fait que vous
utilisez la virgule comme séparateur décimal.

Access 97 convertit les champs de type Decimal sur DB2 en champs de type
numérique "Réel", parce que le moteur Jet 3.5 d'Access 97 n'offre aucun type
de données correspondant au type Decimal(5,3) de DB2.
Il s'agit donc d'une approximation qui peut induire des erreurs d'arrondi
quand ces valeurs sont utilisées dans des calculs (y compris des calculs
simples comme une somme).

Access 2000 apporte une amélioration parce qu'il utilise le moteur Microsoft
Jet 4.0.
Le moteur Jet 4.0 gère un nouveau type de données numérique "Décimal"
qui permet de beaucoup mieux gérer les champs de type DB2 Decimal (5,3)
d'une base DB2.

Benoit Compoint

"pascal" wrote in message
news:162c01c3df9a$eaa93060$
Bonjour,

J'attaque des tables DB2 depuis ODBC avec Access. Avec
Access 97, aucun problème mais depuis que je suis passé en
Access 2000 toutes les tables contenants des colonnes de
type décimal ( qui étaient vues avant comme des réel long)
sont bien vues maintenant comme des décimal ( ex Decimal
(5,3)) mais j'ai une erreur à l'ouverture de la table
comme quoi la precision de la colonne décimale est trop
petite pour les données contenues...et tout cela ,c'est un
comble en migrant de version. Le plus "marrant", si ma
base 2000, je l'a convertie en 97, j'ai de nouveau accès
aux tables !!!
Avatar
Pascal
Merci pour la réponse je vais tester...
Par contre s'il est vrai qu'Access 97 ne permettait pas de
creer des champs de type decimal, il les interprétait (
pour mon cas) bien pour la base DB2 liée. Paradoxalement
Access 2000 voit trés bien le ddl des tables avec du
décimal mais ne sais pas afficher les données et je
n'obtiens que des "#erreur". La seule parade pour le
moment est de creer une base access 2000, lier toutes les
tables DB2 puis la convertir en 97 puis de la réouvrir
avec access 2000 et de la reconvertir. A ce moment là, je
peux acceder aux tables mais il ne faut surtout pas que je
recrée le lien sinon tout est à recommencer...J'espère que
c'est bien un pb ODBC et qu'avec cette ligne patch cela
suffira...
En tout cas encore merci pour votre réponse
-----Message d'origine-----
Bonjour,

L'erreur que vous rencontrez est probablement causée par
un bug dans le

driver ODBC que vous utilisez pour accéder aux bases DB2.

Je vous conseille de rechercher le fichier DB2CLI.INI sur
votre disque dur

et de l'ouvrir avec le bloc-notes de Windows
(Notepad.exe).

Vous trouverez probablement dans ce fichier une entrée
PATCH2 (par exemple

PATCH2=1).

Si elle n'existe pas, créez la comme ci-dessous :
PATCH2

Si elle existe déjà (par exemple par exemple PATCH2=1),
ajoutez une virgule et la valeur 15 (par exemple
PATCH2=1,15).


Cela forcera le driver ODBC à ignorer les paramètres
régioanaux de Windows.

En particulier le driver ODBC ne sera plus perturbé par
le fait que vous

utilisez la virgule comme séparateur décimal.

Access 97 convertit les champs de type Decimal sur DB2 en
champs de type

numérique "Réel", parce que le moteur Jet 3.5 d'Access 97
n'offre aucun type

de données correspondant au type Decimal(5,3) de DB2.
Il s'agit donc d'une approximation qui peut induire des
erreurs d'arrondi

quand ces valeurs sont utilisées dans des calculs (y
compris des calculs

simples comme une somme).

Access 2000 apporte une amélioration parce qu'il utilise
le moteur Microsoft

Jet 4.0.
Le moteur Jet 4.0 gère un nouveau type de données
numérique "Décimal"

qui permet de beaucoup mieux gérer les champs de type DB2
Decimal (5,3)

d'une base DB2.

Benoit Compoint

"pascal" wrote in
message

news:162c01c3df9a$eaa93060$
Bonjour,

J'attaque des tables DB2 depuis ODBC avec Access. Avec
Access 97, aucun problème mais depuis que je suis passé en
Access 2000 toutes les tables contenants des colonnes de
type décimal ( qui étaient vues avant comme des réel long)
sont bien vues maintenant comme des décimal ( ex Decimal
(5,3)) mais j'ai une erreur à l'ouverture de la table
comme quoi la precision de la colonne décimale est trop
petite pour les données contenues...et tout cela ,c'est un
comble en migrant de version. Le plus "marrant", si ma
base 2000, je l'a convertie en 97, j'ai de nouveau accès
aux tables !!!


.