Bonjour,
Mon logiciel est en VB6 et utilise actuellement une BDD Access.
J'aimerai qu'il utilise une BDD Sqlite3.
Quelle serait la meilleur solution ?
Bonjour,
Mon logiciel est en VB6 et utilise actuellement une BDD Access.
J'aimerai qu'il utilise une BDD Sqlite3.
Quelle serait la meilleur solution ?
1°) Retrousser ses manches
2°) chercher sur internet si il y a des info sur vb et sqlite
3°) commencer a ecrire un projet test pour voir comment çà réagit
4°) optionellement, nous faire un petit post sur ce qui coince
Bonjour,
j'ai pas mal cherché, mais rien de bien pertinant.
C'est un peu pour ca que je voulais voir si quelqu'un l'avait déjà fait et connaitre la méthode, afin justement de commencer à faire un petit programme test.
Bonjour,
En faisant très peu de recherches voici sur quoi je suis tombé: StringConnection
Bon j'avoue, j'ai triché, je connaissais déjà ce site avant que tu ne poses ta question
Mais cela prouve que c'est possible de gérer une base de donées de la manière que tu veux le faire...
Maintenant comme j'aime à le dire... "Y'a qu'à faut que"
Cordialement
Merci pour le site ^^
En fait l'interconnexion se fait toute seule, on a juste a changer le provider :
Exemple :
cnnADO_User.Open "Driver=SQLite3 ODBC Driver;Database=" & App.Path & "\dbb.db"
au lieu de :
cnnADO_User.Open "Microsoft.Jet.OLEDB.4.0;Database=" & App.Path & "\bdd.db"
Le seul HIC, c'est qu'il faut utiliser les ADO ...
Mon logiciel en VB6 ne les utilise pas il utilise une méthode objet..
La base de données est en fait prise pour un objet et on y accède exactement comme pour un objet.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim StrSQL As String StrSQL = "SELECT * FROM table " OBJETBDD.DataInit.RecordSource = StrSQL OBJETBDD.DataInit.Refresh
La soulution c'est que je change toutes ces requetes en utilisant les ADO, mais c'est long et il y a peut etre une autre solution ?
Bonjour,
Si j'ai tout bien compris (risque de trompage ) avec une connexion ADBC tu n'utilises justement pas ADO...
C'est dailleurs l'avantage que j'y avais trouvé...
Avec VB on n'est 'je suppose" pas obligé d'avoir de provider, donc mon logiciel se connect bien sur la BDD mais n'utilise pas les ADO.
Magnifique donc... faites péter le champagne et les danseuses !!!mon logiciel se connect bien sur la BDD mais n'utilise pas les ADO.
Non ??
Reste-t-il un problème ??
Désolé de ne pas avoir été assez précis.
Mon logiciel en VB6 se connecte bien sur la BDD ACCESS mais sans utiliser les ADO.
Si mon logiciel utiliserai les ADO le probleme serait réglé ^^
D'ou le probleme de ne pas reussir a se connecter a une base de donnée SQLite avec VB6 sans modifier tout le code ...
haaaaaaaaa...
Et heu... je suppose que tu as essayé de regardé les références et composants nécessaires à l'utilisation d'un ADODC ?
Et le cas échéant fais le tuto qui va avec ?
Cordialement
(le bout du tunnel est proche, courage )
Je suis en train de regarder un peu plus le logiciel en VB6 et il utilise une feuille MDI qui repertorie les noms des databases.
sinon, pour le moment j'ai pas touché aux ADO, j'attends de voir si j'arrive a trouver un solution sans les ADO.
et si la seule solution c'est de tout faire avec les ADO, bah je m'y collerai
... un peu plus tard dans la journée...Envoyé par lathenorLuke SkyWaker, il va falloir choisir entre le bien ou le mal...Envoyé par lathenor
Je sens le coté obscur t'envahir et mon neuronne surchauffer...
En résumé:
Tu ne veux pas utiliser les ADO => utilise ODBC
Tu veux utiliser les ADO => Tu veux utiliser les ADO...
... finalement cela te va comme réponse ?
le truc c'est pas que je veux ou non utiliser les ADO.
l'ideale, aurait été d'avoir un projet VB6 entierement en ADO, pour le transformer en Sqlite ODBC et une seule ligne aurait suffit.
A long terme je transformeai surment le projet VB6 avec des connection ADO.
Seulement la, je me laisser un peu de temps avant de me lancer dans cette utilisation massive des ADO, car j'ai "pour le moment" pas trop envie de toucher aux codes sources , ou alors le moins possible.
Je ne sais même pas ce que c'est comme connexion ca :
ODBC, ADO ? je pense que c'est ni l'un ni l'autre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim StrSQL As String StrSQL = "SELECT * FROM table " MDIOBJET.Database.RecordSource = StrSQL MDIOBJET.Database.Refresh
en tout cas ca fonctionne très bien.
Je comprends mieux et pencherais aussi pour le "ni l'un ni l'autre" sans pouvoir t'en dire plus pour l'instant malheureusement...Envoyé par lathenor
Je vais chercher aussi
A vue de nez c'est du DAO !
Ton ancienne base serait pas une base ACCESS ?
Si oui, je te propose une solution alternative
Crée un lien ODBC (Panneau Controle/Source de données ODBC) vers ta base SQLLite
Crée (avec access) une nouvelle base ACCESS (exemple MaBaseLiee.Mdb)
Attache toutes les tables de la base SQLlite (table liées)
Ton programme devrait quasiment tourner sans autres retouches autre que de changer le nom de la base
Oui c'est bien ACCESS.Envoyé par Delbeke
Merci de proposer ^^Envoyé par Delbeke
1 et 2 fait.Envoyé par Delbeke
Comme tu me l'as conseillé j'ai fait un petit programme qui tourne qui se connect aux BDD ACCESS ET aux BDD SQLITE3
(Par contre c'est en ODBC)
Peut tu être un peu plus précis sur le Numéro 3 s'il te plait ?
(Je les attache a quoi? comment?)
en gros ce que tu veux me dire, c'est :
1) j'ai d'un coté mon code VB avec la base Access existante avec une connection DAO.
2) crée une connection ODBC avec une base sqlite (c'est fait)
3) crée une nouvelle table Acces et la lié a celle de sqlite ... je vois pas troop comment et pourquoi ?
Dans access ouvert su ta nouvelle table tout belle et vide , tu fais un click droit sur la fenetre qui affiche les tables, tu choisis 'lier les tables'. Dans la fenetre de dialogue qui s'affiche, en bas, tu choisis ODBCDatabases() comme 'type de fichier'. La une autre fenetre de dialogue s'affiche te permetant de selection le lien ODBC vers ta base SQLLite. Ceci fait une troisieme boirte de dialogue t'affiche les tables de ta base SQLLite. Tu choisis la premiere de la liste et tu valides.
Recommence l'operation pour chaque table.
Ensuite fait un double_click sur une de ces tables et vois!...
Le but est d'utiliser le moteur d'access sur des tables qui ne sont pas dans access, mais ailleurs ! c'est ce qu'on apelle une table liée.
Très interressant !!!
Merci.
je pense voir l'idée, et si c'est ca, bah c'est vraiment pas mal du tout.
En gros, voila ce que j'ai compris :
1) j'ai une base SQLite qui fonctionne bien, avec n'importe quoi ...
2) je la lie a une BDD access qui est en faite une réplique de la sqlite ...
3) Je peux donc utiliser mes nouveau programme avec sqlite et mes ancien programme sur Access, les changement sur l'un vont changé l'autre car elles sont lié ...
La question est de savoi si cette liaison entre les deux base sont a double sens ou a un seul sens ?
Et que faudrait-il faire pour "metre a jour" ou rafraichir l'un des deux base si l'autre a été modifié ?
Du coté programmation vb, il n'y a pas de diférence entre ouvrir une table d'access ou une table liée.
Ayant bien réfléchi, c'est une bonne solution que tu me propose, et je t'en remerci, mais y'a un defaut c'est qu'il y a qaund même "physiquement" deux BDD et le mieux pour mon projet c'est d'en faire qu'une seule ca eviterai pas mal de probleme a la longue je pense surtout au niveau compatibilité.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager