martChamp
Messages postés6Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention24 janvier 2007
-
16 oct. 2006 à 16:12
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
17 oct. 2006 à 21:44
Bonjour,
Je devellope une application, qui devrai chercher des informations sur une base access situé sur un serveur distant, le probléme est : Comment faire pour accéder à celle-ci sous delphi 7?
Je compte vous pour m'eclairer sur se sujet !!
Car actuellement je nage dans le flou!!
merci
codial
Messages postés265Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 5 mai 20151 16 oct. 2006 à 17:07
Bonjour,
Le composant utilisé est ADO?
Si oui il suffit de lui donner le chemin, avec par exemple un OpenDialog et l'écrire dans un fichier ini, du genre:
OpenDialog1.InitialDir:= ExtractFilePath(Application.EXEName);
OpenDialog1.Title:='Ouvrir une base';
OpenDialog1.Filter := 'Base CDJ (*.mdb)|*.mdb|All files (*.*)|*.*';
if OpenDialog1.Execute then begin
//Ecrire dans le fichier ini du répertoire windows
FichierIni.WriteString('DataBase','CheminBase',OpenDialog1.FileName);
martChamp
Messages postés6Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention24 janvier 2007 16 oct. 2006 à 18:04
Merci, en faite j'arrive à me connécter à ma base sur mon poste, mais je voudré pouvoir intéroger une autre base access qui est sur un serveur FTP, le probléme est :
quel composant dois-je utiliser ? est-ce possible avec ADO?
voila, je pensse que tu a pas bien compri, mais bon merci de m'avoir repondue!!
Codial sympas ton truc mais :
1)tu pourrais définir tes variables stp : c'est quoi BaseEnCours ??
2)Tu as pas le sentiment qu'il manque des choses : FichierIni.WriteString('DataBase','CheminBase',OpenDialog1.FileName);
Cecie ne fonctionne pas et c'est quoi FichierIni??
3)FichierIni.WriteString: Pourquoi écrire le nom de la table de données que tu ouvres dans un fichier Ini ?? aucun intéret
4)FichierIni.ReadString('DataBase','CheminBase','nonbd'); Identique n'a aucun intéret
5)A chaque point virgule on saute une ligne
6)il y a pas de commentaires : on y comprend rien.
MartChamp : pour te connecter à une base de données qui est sur serveur FTP, il faut faire un client FTP pour récupérer ta base de données. Mais oublie pas qu'il te faut le mot de passe et l'identifiant.
codial
Messages postés265Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 5 mai 20151 16 oct. 2006 à 19:15
Bonsoir,
Je suis d'accord pour définir mes variables, mais il s'agissait d'un exemple et les termes me paraissaient significatif, ce n'était qu'une piste.
Par ailleurs, je suis surpris par cette remarque:
3)FichierIni.WriteString: Pourquoi écrire le nom de la table de données que tu ouvres dans un fichier Ini ?? aucun intéret
Perso je pense que le chemin de la base ne doit pas être figé!
Je trouve que d'écrire le chemin de ma base dans un fichier ini permet au démarrage de l'appli de sélectionner une base de données et de s'y référé à chaque démarage et permet par la suite de changer de base, par exemple pour consulation, etc....
Ceci dit j'évirerais à l'avenir de poster
Cordialement
Codial
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pourquoi je t'ai souligné l'importance de déclarer les variables : pour que l'on sache ce que s'est. Dans ton cas c'est une string si je me trompe pas mais ca pourrait etre très l'item d'une stringlist. Puis si on le précise pas, bonjour les dépassements en tout genre.
Quand on poste une réponse elle doit etre :
1)Totale : déclararer des classes, des uses, des constantes, des variables ... Elle doit fait apparaitre un évènement Onclick ou alors une procédure appelant la fonction doit etre donnée. Pourquoi cela ? pour les débutants ^^
2)Edulcorer de choses inutiles pour le demandeur
Tu aimes pas que le chemin de la base soit figée ?? Bien en utilisant la propriété FileName d'un TOpenDialog explique moi comment tu figes quelque chose?
J'ai du louper une marche là. Maintenant désolé mais de créer un fichier (Ini ou pas) à chaque fois que tu veux te connecter à une base de données : bonjour la lourdeur. Imagine qu'a chaque fois que tu regardes une photos ou un film ou que tu écoutes une musique tu crées un fichier Ini : aie aie aie. Ben c'est exactement ce que tu fais. Bonjour le disque dur bourré de fichiers inutiles.
A ca :
ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;
Data Source=' + BaseEnCours +';
Mode=ReadWrite;
Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Tu prefères quoi ^^ ?? En plus ca permet de te rencontre qu'il ya la dedans une grosse boulette
Bon voila je voulais juste souligner que ton code ne collait pas à sa demande (ce qui arrive à tout le monde) mais surtout qu'il manquait l'essence meme de ton code. Allez arrete de bouder
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 16 oct. 2006 à 22:05
Oh là, on se calme !
La problématique de martChamp semble passer à côté de vos préoccupations.
Alors, au lieu de régler des comptes, si on en revenait à l'essentiel :
Pb accéder à une base access sur un FTP ou HTTP
Visiblement, le problème n'est pas de savoir comment ouvrir une connexion mais accéder à un emplacement physique sur un serveur ftp ou http distant.
D'emblée, il vaut mieux écarter l'idée de vouloir accéder à un serveur FTP.
En ce qui concerne l'accés à une base située sur un serveur HTTP, si on peut s'y connecter comme si elle était située sur un simple lecteur réseau, c'est qu'il y a de sérieux problèmes de sécurité du côté serveur !
En revanche, il existe au moins une solution avec ce tutoriel : Exécutez des scripts PHP à partir de Delphi par Sub0 .
Même si tu n'utilises pas PHP sur ton serveur HTTP, la conversion vers de l'ASP ou autre devrait pouvoir se faire sans trop d'efforts.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
martChamp
Messages postés6Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention24 janvier 2007 16 oct. 2006 à 22:35
Je te remercie sincerement Delphiprog, ta solution m'a éclairé en grande partie.*
Déjà je sais d'emblé que je peux eviter la méthode FTP et la méthode HTML simple, et tu m'as mis sur la voie d'une méthode qui m'a l'air prometeuse, et je te remercie ;)
Je ne souhaiterai pas cloturer ce post, car si d'autre technique sont possible, alors je serais curieux de les connaitre
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 16 oct. 2006 à 22:43
Oui, d'autres solutions sont possibles à condition de savoir :
- avec quel OS tourne le serveur
- de quelle version de Delphi tu disposes (perso, entreprise, architecte, Delphi ? à Delphi .Net voire TurboDelphi Explorer ou Pro, etc).
- quel est ton niveau de programmation
Il existe toujours plusieurs solutions. La seule différence se situe bien souvent dans la complexité de mise en oeuvre, elle même proportionnelle au degré de sophistication.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
martChamp
Messages postés6Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention24 janvier 2007 17 oct. 2006 à 15:11
Je te donne ca dans l'ordre :
- Pour le moment c'est sur du s2003 mais ca risque de finir sur un herbergement de type free, voir de l'hebergement pro.
- Je devellope sur un Delphi 7.0 Pro
- Mon niveau de programmation est encore pas bien élevé, je suis en BTS info, mais je me débrouille tous de même
Pour le moment j'ai testé avec les composants DBexpress, mais le problème étant qu'il me faut un fichier nommé libMySQL.dll. Cette dll je l'ai downloadé et je l'ai je pense correctement installé (à la racine de mon projet). Le problème pour le moment c'est que ce libMySQL.dll permet d'attaquer une base mysql 3.x et que la quasi totalité des serveurs sont sous mysql 4.x.
Est ce que je fais bien de m'enteter sur cette facon de faire ?
Concernant la solution que tu m'as proposé, j'ai eu du mal à comprendre comment j'allais pouvoir l'integrès dans mon devellopement, car je pense que cette interface PHP n'est peut être pas necessaire.
Environnement de l'appli : Je dois acceder à une base distante, qui me permettrait de nourir ma base locale, non pas en la repliquant totalement, mais en y prenant seulement ce dont j'ai besoin (en gros requette SQL simple)
J'espère vous avoir donné assez d'information pour pouvoir m'aiguiller, vous remerciant d'avance
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 17 oct. 2006 à 21:44
Je reprends point par point.
" Pour le moment c'est sur du s2003 mais ca risque de finir sur un herbergement de type free, voir de l'hebergement pro."
C'est quoi "s2003" ?
Si tu envisages un hébergement chez Free, sache qu'il n'est pas possible d'accéder, de manière distante, à ta base de données MySql sur leurs serveurs. C'est bien pour cela que le premier lien donné exploitait des scripts PHP.
" Je devellope sur un Delphi 7.0 Pro"
Je pense que tu as tous l'outillage nécessaire pour développer sérieusement.
" Mon niveau de programmation est encore pas bien élevé, je suis en BTS info, mais je me débrouille tous de même"
Rassure-toi, on en est tous là
"Est ce que je fais bien de m'enteter sur cette facon de faire ?"
Difficile d'apporter une réponse dans la mesure où je ne connais pas tes besoins de stockage, de fonctionnalités offerts par le SGBD ou si c'est simplement un problème financier.
Si tu fais essentiellement de la lecture (90 % du temps) et peu d'écriture sur la base, tu peux aussi envisager SQL Lite. C'est performant, robuste, ça supporte les transactions et l'intégrité référentielle si ma mémoire est bonne (voir le site de SQL Lite) .
Au cas où, tu trouveras un ensemble de composants capable de gére une base SQL Lite sur le site Torry.
"Concernant la solution que tu m'as proposé, j'ai eu du mal à comprendre comment j'allais pouvoir l'integrès dans mon devellopement, car je pense que cette interface PHP n'est peut être pas necessaire."
Quand j'ai avancé cette piste, je ne connaissais rien de tes besoins ni de ton environnement d'exécution. Il semble que ce ne soit effectivement pas adapté à ton cas voire même déconseillé.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.