OVH Cloud OVH Cloud

Pb de rafraichissement d'un fichier DBF à partir d'un ADODB.RECORDSET

3 réponses
Avatar
Iddir - d'Alger
Salut tout le monde, voil=E0 mon Pb: je n'arrive pas =E0=20
rafraichir un fichier de format DBF via un ADODB.RECORDSET=20
apr=E8s avoir r=E9aliser des mises =E0 jours (Suppression,=20
modifications) sur ce recordset. J'ai le UPDATEBATCH qui=20
ne fonctionne pas. Il y'a le message d'erreur suivant qui=20
s'affiche:
Le fourniseur ne dispose pas d'assez d'informations=20
sur la table de base de donn=E9es pour sa mise =E0 jour et son=20
rafraichissement.

Voici un bout de mon code.

Dim StrReq As String
Dim CnString As String
Dim CnB20 As ADODB.Connection
Dim RB20 As ADODB.Connection

Set CnB20 =3D New ADODB.Connection
Set RsB20 =3D New ADODB.Recordset

'=E7a c'est ma chaine de connexion ODBC

CnString =3D "DRIVER=3D{Microsoft dBASE Driver (*.Dbf)};=20
DRIVELD=3D21; FIL=3DdBase III; DEFAULTDIR=3DE:\Abed;=20
DBQ=3DE:\Abed; DELETED=3D0, MAXSCANROWS=3D8;=20
COLLATINGSEQUENCE=3DASCII; USERCOMMITSYNC=3DYES;=20
MaxBufferSize=3D2048; PageTimeout=3D600"

'Ici je fixe certains =E2ram=E8tres de ma connection puis je=20
l'ouvre

With CnB20
.ConnectionString =3D CnString
.Mode =3D adModeReadWrite
.Provider =3D "MSDASQL"
.Open
End With

RsB20.CursorLocation =3D adUseClient

StrReq =3D "SELECT Date_Val, Agence, No_Compte, Client,=20
Fournis, Montant, Devise, Type_Ope, Cours, Unit_Cota,=20
CV_DA, Corresp, Code_DAI FROM B20"

RsB20.Open StrReq, CnB20, adOpenStatic,=20
adLockBatchOptimistic, adCmdText
=20
With RsB20C
.Delete
.UpdateBatch
End With

Mer=E7i d'avance !

3 réponses

Avatar
Bismark Prods
Salut, je te donne un truc astucieux ! change de fournisseur. Utilise
VFPOLEDB ! Cela fonctionne à merveille avec les DBF et cela donne certaines
possibilités interessantes. Ici, on n'utilise que ca pour les DBF et cela ne
pose pas de problème de rafraichissement. Par contre cela modifie un peu la
syntaxe SQL !

"Iddir - d'Alger" a écrit dans le message de
news:00d701c36034$c8cbef40$
Salut tout le monde, voilà mon Pb: je n'arrive pas à
rafraichir un fichier de format DBF via un ADODB.RECORDSET
après avoir réaliser des mises à jours (Suppression,
modifications) sur ce recordset. J'ai le UPDATEBATCH qui
ne fonctionne pas. Il y'a le message d'erreur suivant qui
s'affiche:
Le fourniseur ne dispose pas d'assez d'informations
sur la table de base de données pour sa mise à jour et son
rafraichissement.

Voici un bout de mon code.

Dim StrReq As String
Dim CnString As String
Dim CnB20 As ADODB.Connection
Dim RB20 As ADODB.Connection

Set CnB20 = New ADODB.Connection
Set RsB20 = New ADODB.Recordset

'ça c'est ma chaine de connexion ODBC

CnString = "DRIVER={Microsoft dBASE Driver (*.Dbf)};
DRIVELD!; FILÛase III; DEFAULTDIR=E:Abed;
DBQ=E:Abed; DELETED=0, MAXSCANROWS=8;
COLLATINGSEQUENCE=ASCII; USERCOMMITSYNC=YES;
MaxBufferSize 48; PageTimeout`0"

'Ici je fixe certains âramètres de ma connection puis je
l'ouvre

With CnB20
.ConnectionString = CnString
.Mode = adModeReadWrite
.Provider = "MSDASQL"
.Open
End With

RsB20.CursorLocation = adUseClient

StrReq = "SELECT Date_Val, Agence, No_Compte, Client,
Fournis, Montant, Devise, Type_Ope, Cours, Unit_Cota,
CV_DA, Corresp, Code_DAI FROM B20"

RsB20.Open StrReq, CnB20, adOpenStatic,
adLockBatchOptimistic, adCmdText

With RsB20C
.Delete
.UpdateBatch
End With

Merçi d'avance !
Avatar
Bismark Prods
je pense que je sais ca mieux que toi ! le provider VFPOLEDB existe !

Et tout ce que tu viens de dire n'est pas du tout correct. Cherche mieux !


"Iddir d'Alger" a écrit dans le message de
news:044e01c361c7$c8996c70$

IL n'existe pas de fournisseur VFPOLEDB. C'est le driver
ODBC VFP pour les DBF qui est disponible. On passe tjrs
par le fournisseur OLEDB pour ODBC (MSDASQL) pour utiliser
le driver ODBC VFP pour DBF.

Je te dit cela car la valeur (VFPOLEDB) de la propriété
PROVIDER de ma connexion n'a pas été reconnue. J'ai même
cherché à installer ce fournisseur à partir de mon CD
VISUAL STUDIO, mais je ne l'ai pas trouvé. Je crois qu'il
n'existe pas.

Je me suis donc rabattu à changer le paramètre DRIVER
dans ma chaine de connexion en employant le driver ODBC
VFP pour les DBF.

La connexion s'ouvre sans Pb, mais le RECORDSET ne
s'ouvre même pas.

A toute âme charitable, je lance un SOS, car ça serait
vraiment dommage de laisser ça en suspens !

Iddir d'Alger.
Avatar
Bismark Prods
tu vas sur Google ch ! tu cherche vfpoledb.dll !
et tu prend le 4eme lien : microsoft ... et tu telecharge vfpoledb et tu
verras si ce que je dis c'est des conneries !

"Bismark Prods" a écrit dans le message de
news:
je pense que je sais ca mieux que toi ! le provider VFPOLEDB existe !

Et tout ce que tu viens de dire n'est pas du tout correct. Cherche mieux !


"Iddir d'Alger" a écrit dans le message de
news:044e01c361c7$c8996c70$

IL n'existe pas de fournisseur VFPOLEDB. C'est le driver
ODBC VFP pour les DBF qui est disponible. On passe tjrs
par le fournisseur OLEDB pour ODBC (MSDASQL) pour utiliser
le driver ODBC VFP pour DBF.

Je te dit cela car la valeur (VFPOLEDB) de la propriété
PROVIDER de ma connexion n'a pas été reconnue. J'ai même
cherché à installer ce fournisseur à partir de mon CD
VISUAL STUDIO, mais je ne l'ai pas trouvé. Je crois qu'il
n'existe pas.

Je me suis donc rabattu à changer le paramètre DRIVER
dans ma chaine de connexion en employant le driver ODBC
VFP pour les DBF.

La connexion s'ouvre sans Pb, mais le RECORDSET ne
s'ouvre même pas.

A toute âme charitable, je lance un SOS, car ça serait
vraiment dommage de laisser ça en suspens !

Iddir d'Alger.