OVH Cloud OVH Cloud

Base de données sous RDO

1 réponse
Avatar
Jean Saint Jalmes
Bonjour,

J'ai un probl=E8me avec mes bases de donn=E9es sous RDO depuis=20
le correctif Windows - KB837001.

Je suis sous Windows XP service pack1 et sous Visual=20
studio service pack 6.

Si je d=E9sinstalle le correctif KB837001, tout fonctionne =E0=20
nouveau normalement.

Je me connecte =E0 ma base de donn=E9es locale via une source=20
de donn=E9es ODBC d=E9finie comme suit :

Nom de la source de donn=E9es : MYDATABASE
Driver : Microsoft paradox driver (*.db)
Version : 4.00.6019.00 du 28/08/2001

Exemple de programme VB : (une feuille avec un TextBox=20
nomm=E9 txtNom, un CommandButton nomm=E9 CmdSearch et un=20
ListBox nomm=E9 Lst). Un click sur le bouton cmdSearch=20
d=E9clenche la recherche des clients dont le nom commence=20
par le texte saisi dans txtNom.

Private DataBase as new RdoConnexion
Private Buffer as RdoResultset

Private sub Form_Load()
With DataBase
.CursorDriver =3D rdUseNone
.Connect =3D "DSN=3DMYDATABASE"
.EstablishConnection rdDriverNoPrompt
End With
End sub

Private sub CmdSearch_Click()
lst.Clear
Set Buffer =3D DataBase.OpenResultset("SELECT * FROM=20
Clients WHERE Nom LIKE '" & txtNOM=20
& "%'",rdOpenForwardOnly,rdConcurReadOnly)
do while not Buffer.Eof
lst.AddItem Buffer!Nom
Buffer.MoveNext
Loop
End sub

Dans ma table "Client", j'ai :

ALBERT PREMIER
ALLIGAND
BERNARD

Sans le correctif, si j'appelle le client "A",=20
j'obtiens "ALBERT PREMIER" et "ALLIGAND" et si j'appelle=20
le clent "B", j'obtiens "BERNARD".

Avec le correctif, si j'appelle le client "A", la liste=20
est vide. Si j'appelle "ALBERT", j'obtiens "ALBERT=20
PREMIER", si j'appelle "B" la liste est vide et si=20
j'appelle "BERNARD" j'obtiens "BERNARD".

Autrement dit, seuls les clients dont le nom comporte le=20
mot saisi sont affich=E9s !

Merci d'avance pour votre aide.

Jean

1 réponse

Avatar
Pascal B.
Bonjour Jean,

Remplace % par * après le LIKE

Set Buffer = DataBase.OpenResultset("SELECT * FROM
Clients WHERE Nom LIKE '" & txtNOM
& "*'",rdOpenForwardOnly,rdConcurReadOnly)

Pascal


"Jean Saint Jalmes" wrote in message news:1847101c44a28$e591ee70$
Bonjour,

J'ai un problème avec mes bases de données sous RDO depuis
le correctif Windows - KB837001.

Je suis sous Windows XP service pack1 et sous Visual
studio service pack 6.

Si je désinstalle le correctif KB837001, tout fonctionne à
nouveau normalement.

Je me connecte à ma base de données locale via une source
de données ODBC définie comme suit :

Nom de la source de données : MYDATABASE
Driver : Microsoft paradox driver (*.db)
Version : 4.00.6019.00 du 28/08/2001

Exemple de programme VB : (une feuille avec un TextBox
nommé txtNom, un CommandButton nommé CmdSearch et un
ListBox nommé Lst). Un click sur le bouton cmdSearch
déclenche la recherche des clients dont le nom commence
par le texte saisi dans txtNom.

Private DataBase as new RdoConnexion
Private Buffer as RdoResultset

Private sub Form_Load()
With DataBase
.CursorDriver = rdUseNone
.Connect = "DSN=MYDATABASE"
.EstablishConnection rdDriverNoPrompt
End With
End sub

Private sub CmdSearch_Click()
lst.Clear
Set Buffer = DataBase.OpenResultset("SELECT * FROM
Clients WHERE Nom LIKE '" & txtNOM
& "%'",rdOpenForwardOnly,rdConcurReadOnly)
do while not Buffer.Eof
lst.AddItem Buffer!Nom
Buffer.MoveNext
Loop
End sub

Dans ma table "Client", j'ai :

ALBERT PREMIER
ALLIGAND
BERNARD

Sans le correctif, si j'appelle le client "A",
j'obtiens "ALBERT PREMIER" et "ALLIGAND" et si j'appelle
le clent "B", j'obtiens "BERNARD".

Avec le correctif, si j'appelle le client "A", la liste
est vide. Si j'appelle "ALBERT", j'obtiens "ALBERT
PREMIER", si j'appelle "B" la liste est vide et si
j'appelle "BERNARD" j'obtiens "BERNARD".

Autrement dit, seuls les clients dont le nom comporte le
mot saisi sont affichés !

Merci d'avance pour votre aide.

Jean