Base de données MS Access sur serveur
Dernière réponse : dans Programmation
J'utilise des bases de données MS Access.
Je les exploite soit par des applications développées en Delphi 2005.
J'utilise les connections ADO.
Cela fonctionne
pour mon site Web qui est sur le même serveur que la base
pour MS Access si la base est sur mon PC
pour une application VCL si la base est sur mon PC
l'hébergeur m'a dit que ce n'était pas possible d'accéder à la base sur le serveur avec MS Access (?) (pourtant MS Access la voit via le serveur FTP mais l'accès à la table est impossible)
Je voudrais donc créer une application VCL qui accède à la base sur le serveur pour la modifier facilement sans faire de copie de bases entre serveur et PC. Si j'ai bien compris, il faut une liaison RDS avec objet datafactory sur le serveur.
Auriez-vous un exemple concret et simple (ou un lien) de ce type d'architecture car je ne sais comment commencer, butant sur de nombreuses questions pratiques.
Merci d'avance
Je les exploite soit par des applications développées en Delphi 2005.
J'utilise les connections ADO.
Cela fonctionne
Je voudrais donc créer une application VCL qui accède à la base sur le serveur pour la modifier facilement sans faire de copie de bases entre serveur et PC. Si j'ai bien compris, il faut une liaison RDS avec objet datafactory sur le serveur.
Auriez-vous un exemple concret et simple (ou un lien) de ce type d'architecture car je ne sais comment commencer, butant sur de nombreuses questions pratiques.
Merci d'avance
Autres pages sur : base donnees access serveur
Lassé par la pub ? Créez un compte
Je voudrais créer un site de e-commerce (mais modeste).
J'ai une base de donnée des produits sur le serveur du site.
Le site web y accède pour afficher les produits.
Je dois donc mettre à jour égulièrement cette base.
Je le fais actullement en copiant la base sur le PC en la modifiant par MS Access pour en la remettant sur le serveur d'où risque d'erreur de manip, surtout si je délègue la tâche.
Pour la modifier in situ, j'ai deux solutions:
- créer un site administrateur pour modifier cette base (je sais faire)
- créer une application VCL Delphi chez le client mais qui accède directement à la base.
La deuxième solution me semble offir plus de souplesse dans la présentation.
Mais si j'ai bien compris, pour accéder à la base, je ne peux pas utiliser un objet OleDbConnection (Provider=Microsoft.Jet.OLEDB.4.0) car la base n'est pas sur le même site que l'appli.
Il faut utiliser un objet RDSConnection qui appelle un service contenant l'objet Datafactory.
Or, en cherchant sur le sujet, je tombe sur des exemples de service Web utilisant XML ou SOAP, etc qui me parraissent démesurés par rapport aux besoins.
Le service Datafactory doit se borner à
- interroger la base
- mettre en forme la table
- me l'envoyer
- executer des Tquery pour les modifs
Maintenant, il y a peut-être un moyen de se connecter directement avec OleDbConnection mais je ne sais pas configurer la ConnectionString pour une base qui n'est pas sur le même lieu.
Merci
J'ai une base de donnée des produits sur le serveur du site.
Le site web y accède pour afficher les produits.
Je dois donc mettre à jour égulièrement cette base.
Je le fais actullement en copiant la base sur le PC en la modifiant par MS Access pour en la remettant sur le serveur d'où risque d'erreur de manip, surtout si je délègue la tâche.
Pour la modifier in situ, j'ai deux solutions:
- créer un site administrateur pour modifier cette base (je sais faire)
- créer une application VCL Delphi chez le client mais qui accède directement à la base.
La deuxième solution me semble offir plus de souplesse dans la présentation.
Mais si j'ai bien compris, pour accéder à la base, je ne peux pas utiliser un objet OleDbConnection (Provider=Microsoft.Jet.OLEDB.4.0) car la base n'est pas sur le même site que l'appli.
Il faut utiliser un objet RDSConnection qui appelle un service contenant l'objet Datafactory.
Or, en cherchant sur le sujet, je tombe sur des exemples de service Web utilisant XML ou SOAP, etc qui me parraissent démesurés par rapport aux besoins.
Le service Datafactory doit se borner à
- interroger la base
- mettre en forme la table
- me l'envoyer
- executer des Tquery pour les modifs
Maintenant, il y a peut-être un moyen de se connecter directement avec OleDbConnection mais je ne sais pas configurer la ConnectionString pour une base qui n'est pas sur le même lieu.
Merci
Normalement tu as les composants natifs de Delphi "DbExpress" qui gère, oracle, mySQl, Interbase, MSSQL.... tu ne passes pas par un ADO, ODBC, BDE ou autre. Tu attaques la base de données directement (nettement plus rapide, plus stable mais un peu plus compliquer à mettre en oeuvre)
En effet Access donne un peu court pour ce genre d'application... Access reste une database pour gérer une base de donnée monoposte (et c'est une base de données monoposte)
Et quand tu dis "J'ai aussi installé MySql mais c'est pas très convivial." c'est que tu as appris sur Access uniquement en visuel et assisté. Dans la pratique ce n'est pas le cas. Quasiment dans toutes les bases de données, tu dois écrire manuellement les ordres, script.... et c'est comme cela que tu apprends.
regarde également sur le site http://www.developpez.com/ qui donne de très bon tutoriaux sur les databases et Delphi.
En effet Access donne un peu court pour ce genre d'application... Access reste une database pour gérer une base de donnée monoposte (et c'est une base de données monoposte)
Et quand tu dis "J'ai aussi installé MySql mais c'est pas très convivial." c'est que tu as appris sur Access uniquement en visuel et assisté. Dans la pratique ce n'est pas le cas. Quasiment dans toutes les bases de données, tu dois écrire manuellement les ordres, script.... et c'est comme cela que tu apprends.
regarde également sur le site http://www.developpez.com/ qui donne de très bon tutoriaux sur les databases et Delphi.
Natif ? Nan. C'est CoreLab ( http://www.crlab.com/ ) qui fait ça. Mais c'est très bien intégré à Delphi.
La version livré avec Delphi est limitée. Par exemple, le nombre de champs récupérée par une requête est limité.
La version livré avec Delphi est limitée. Par exemple, le nombre de champs récupérée par une requête est limité.
Merci de vos réponses.
Je récapitule:
- OBDC, ADO, etc: on oublie car couches supplémentaires.
- on prend db Express car moins spécifique que IBX
- on choisit Interbase, fireBird, ou MySQL
Interbase:
- Convivial
- Payant (mais inclus dans Delphi 2005)
- Utilisable à volonté pour des sites Web puisque c'est l'hébergeur qui fournit le serveur
- Faut-il bien installer le serveur Interbase (et donc payer une license) sur chaque site où on installe une application locale? (60 euros pour un gestionnaire de carnet d'adresse ou du même genre, c'est raide. 150 euros pour un accès en réseau).
fireBird:
- Gratuit
- Convivial ou comme MySQL??
MySQL:
- Gratuit
- Pas utilisable par un client donc obligé de créer une application pour gérer la base.
Je récapitule:
- OBDC, ADO, etc: on oublie car couches supplémentaires.
- on prend db Express car moins spécifique que IBX
- on choisit Interbase, fireBird, ou MySQL
Interbase:
- Convivial
- Payant (mais inclus dans Delphi 2005)
- Utilisable à volonté pour des sites Web puisque c'est l'hébergeur qui fournit le serveur
- Faut-il bien installer le serveur Interbase (et donc payer une license) sur chaque site où on installe une application locale? (60 euros pour un gestionnaire de carnet d'adresse ou du même genre, c'est raide. 150 euros pour un accès en réseau).
fireBird:
- Gratuit
- Convivial ou comme MySQL??
MySQL:
- Gratuit
- Pas utilisable par un client donc obligé de créer une application pour gérer la base.
Citation :
Merci de vos réponses.Je récapitule:
- OBDC, ADO, etc: on oublie car couches supplémentaires.
- on prend db Express car moins spécifique que IBX
- on choisit Interbase, fireBird, ou MySQL
Interbase:
- Convivial
- Payant (mais inclus dans Delphi 2005)
- Utilisable à volonté pour des sites Web puisque c'est l'hébergeur qui fournit le serveur
- Faut-il bien installer le serveur Interbase (et donc payer une license) sur chaque site où on installe une application locale? (60 euros pour un gestionnaire de carnet d'adresse ou du même genre, c'est raide. 150 euros pour un accès en réseau).
fireBird:
- Gratuit
- Convivial ou comme MySQL??
MySQL:
- Gratuit
- Pas utilisable par un client donc obligé de créer une application pour gérer la base.
Il existe Interbase 6.0 en Opensource donc gratuit. Le fireBird est plus ou moins identique à Interbase 7.5 et gratuit. Une base de données FireBird tourne sur Interbase sans grand changement.
Interbase est fournis pour Dephi 2005 mais tu n'as pas le droit de le déployer sur les autres postes. C'est une licence de développement.
En effet la licence serveur Interbase Desktop est indispensable pour une application monoposte. Après pour la version réseau, c'est une version Serveur + une licence user sur chaque poste à distant.
Il existe une licence Web pour interbase 7.5 pour le multiutilisateur.
Mais si c'est uniquement pour un carnet d'adresse le FireBird suffit largement.
Si tu parts sur Interbase ou FireBird, il faut prendre les composants adaptés donc les ibExpress
Je crois que le dernier MySQL est payant (pas sûr)
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumCréer une base de données Access a partir d'un script SQL
- ForumImportation da base de données impossible a traver phpmyadmin
- ForumBase de données verrouillée
- ForumConnexion au base de donnees
- ForumBase de donnees du mappeur de point final
- ForumCode de connexion a une base de données acess
- Forum[Access] supression d'une table d'une autre base
- ForumAffichage image jpeg dans base access
- ForumProblème d'accès simultanés à une base access avec WinXP
- Voir plus