PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → access sans OLEDB
access sans OLEDB
Iniciado por Olivier B, 08,dic. 2005 22:00 - 12 respuestas
Publicado el 08,diciembre 2005 - 22:00
Bonsoir,

Pour faire suite à un des mes messages précédent, je souhaiterai savoir comment accéder à une bd access sans devoir passer par le OLE BD because je dois impérativement gérer le blocages des enregistrements voir des fichiers dans le cadre d'une application multi utilisateurs.


D'avance je vous remercie pour votre AIDE.


Olivier B.
Publicado el 09,diciembre 2005 - 08:37
Access recommande l'utilisation de ADO (ADO.net pour les derniers).

Mais si tu ne développes pas en ADO c'est très difficile de gérer les locks. Déjà en ADO, il faut travailler en Optimistic lock qui se déclenche non pas à la lecture de l'enregistrement mais à sa mise à jour dans le recordset.

Il existe un moyen de contournement en gérant une table des locks manuellement.

--
Emmanuel Lecoester
Publicado el 09,diciembre 2005 - 09:06
Ok, mais comment développer en ADO ??

Quelles sont les fonctions à utiliser

Olivier B.
Publicado el 09,diciembre 2005 - 11:14
On ne peut pas utiliser ADO directement dans WinDev. Il vous faudra donc développer des modules spcifiques dans d'autres langages :(

Pourquoi ne pas utiliser de tables de locks ?
Publicado el 09,diciembre 2005 - 13:34
On ne peut pas parceque la base de données travaille déjà avec un programme de gestion développé en VB6. Rajouter une table demanderait un travail considérable sur le programme VB6. De plus et je peux me tromper, il me semble que ca ralentirait les traitements.

Il y a certainement un moyen avec les fonctions Windev mais je me demande s' il ne faut pas paramètrer quelque chose dans access mais kwa???? sais pas.

Pourquoi il ne veut pas en natif avec access, c'est toujours par le OLEDB :(


Je suis ouvert à toutes autres propositionssss.... sinon je serais dans l'obligation de changer d'environement de développement et ca pas trop envie.

Est ce que la version 10 pourra m'aider???


Merci pour votre( ton) aide


Olivier
Publicado el 09,diciembre 2005 - 15:26
D'après ce qu'on trouve sur le net, la première chose à faire est de paramètrer ton fichier UDL ou chaine de connexion de la sorte suivante :

Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\MyDadabase\MyData.mdb;
Mode=Share Deny None;
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Locking Granularity=2

Ensuite, le mieux serait de regarder la documentataion WinDev concernant les connexions OLE-DB pour savoir si la méthode HLitBloque est gérée (désolé je ne l'ait pas sous les yeux). Dans le cas contraire c'est très difficile de gérer le lock manuellement dans WinDev pour cause du décalage du lock pessimistic. Un lien msdn pour te présenter ces difficultés.

http://msdn.microsoft.com/library/default.asp…

Sinon si tu n'as pas beaucoup de traitements, tu peux "déporter" tes traitements au travers d'une DLL en VB ou C (C'est très vite fait). C'est la DLL qui gère l'accès aux données et WinDev récupère les données au moyen d'appels DLL.

Désolé de ne pas t'être d'une plus grande aide.

PS : ce serait bête de changer d'AGL pour un problème de blocage de ligne en base.

--
Emmanuel
Publicado el 09,diciembre 2005 - 15:51
Bonjour,

Sans faire de pub pour quelqu'un, mais pour ADO et Windev n'est-il pas intéressant de voir le site www.sqlmanagerx.com ?

Salutations.

ATGD.
Publicado el 09,diciembre 2005 - 15:58
En parlant de quelqu'un j'entends bien Emmanuel.... ;)
Publicado el 09,diciembre 2005 - 15:58
En parlant de quelqu'un j'entends bien Emmanuel.... ;)
Publicado el 09,diciembre 2005 - 20:41
"atgd" <atgd@free.fr> a écrit dans le message de
news:4399937a@news.pcsoft.fr...

Bonjour,

Sans faire de pub pour quelqu'un, mais pour ADO et Windev n'est-il pas

intéressant de voir le site


Merci atgd mais soyons francs l'accès ADO4WD ne gère pas le blocage de
lignes. Je pourrai entrer dans des schémas techniques un peu compliqués mais
actuellement je ne connais pas de système gérant le blocage de lignes au
travers de la couche ADO (Je ne parle pas de tous les exemples que l'on
trouve en VB, VC++ qui le gère dans le code de manière spécifiques. Cà c'est
très simple.).

Si un des lecteurs connait un moyen de le faire je suis preneur.

Désolé j'ai atteint une limite et je cherche actuellement un moyen de
contourner celà (mais comme dit la pub, je l'aurais un jour, je
l'aurais...).

--
Emmanuel Lecoester
Publicado el 10,diciembre 2005 - 11:15
Ce que je ne comprend c'est que Windev mais à disposition des fonctions qui sont censé fonctionner avec l'OLEDB :

Constante : hOLectureEcrit
hOlecture

fonctions : Hlit(nom_fichier,id,option)
option : hblocageEcriture.....
etc.......


----->Si le provider OLE DB ou l'Accès Natif utilisé ne gère pas les blocages, les options de blocage seront sans effet. (aide Windev)

Il me semble qu'une BD en access peut gérer les blocages étant donné qu'en VB6 on peut les gérer!!!!!

Quel est le bon provider alors.....???????
Publicado el 10,diciembre 2005 - 13:04
[CUT]

> ----->Si le provider OLE DB ou l'Accès Natif utilisé ne gère pas les
blocages, les options de blocage seront
sans effet. (aide Windev)


J'ai la même en WinDev8.

> Il me semble qu'une BD en access peut gérer les blocages étant donné qu'en
VB6 on peut les gérer!!!!!

Oui la Base gère celà, pas le driver odbc fourni ^^. C'est le même constat
que l'on aurait pu faire avec le driver ODBC HyperFile : il autorisait la
lecture mais pas l'écriture. On aurait pu dire HF gère l'écriture vu que WD
sait le faire donc çà doit marcher avec VB (ou autre). Mais si la
fonctionnalité n'est pas présente dans le driver on ne peut pas l'inventer.
Ni plus ni moins.

Quel est le bon provider alors.....???????


A ma connaissance il n'y en a pas et c'est bien dommage :(

--
Emmanuel Lecoester
Publicado el 10,diciembre 2005 - 14:18
En d'autre terme et si je comprend bien, c'est foutu?


Un grand MERCI pour les renseignements que vous m'avez donné!!!!(Vous avez mal planché sur tous les accès).

J'ai envoyé un mail chez PCSOFT vendredi, s'il me trouve une solution je la transmettrai bien volontier!!!!!!!



OLIVIER BINON