|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Bonjour ,
je suis entrain de chercher une méthode qui me permet d'inserer une fichier .exe dans une table de ma base de donnée . j'ai deja essayé les Larges Objects il m'insére juste les chemins pas le fichier . (http://www.developpez.net/forums/d18...age-jpg-table/) ma question est ce que c possible ou pas d'inserer un fichier .exe pas son chemin car aprés je veux bien l'acceder de n'importe quel client ?? ![]() très cordialement. |
|
|
00
|
|
|
#2 |
![]() ![]() Yoann MoreauIngénieur en laboratoire de recherche Inscription : septembre 2005 Messages : 724 ![]() |
Je pense que cela peut poser quelques problèmes. Un exécutable n'est pas forcément portable, donc selon le client qui y accède il ne sera peut être pas utilisable.
Ensuite il faut bien comprendre qu'un exécutable doit être local pour s'exécuter, donc même en le stockant dans la base il faudra le récupérer entièrement chez le client pour pouvoir le lancer. Est-ce qu'il n'y aurait pas de façon de faire plus simple ? Comme une copie de fichier directement. Sinon pour réaliser il faut copier entièrement le code binaire de l'exécutable dans un champ binaire d'une table. Je pense qu'il faudrait chercher de ce côté là : http://docs.postgresql.fr/8.4/sql-copy.html (en bas de page : partie Format binaire) |
|
00
|
|
|
#3 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
|
|
|
00
|
|
|
#4 | |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Citation:
j'ai pas comprid comment avec le clé oid le client peut récupérer le fichier .exe sans aucune indication (son chemin sur le serveur). très cordialement. |
|
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Le client qui récupère le fichier utilise la fonction lo_export() ou bien la commande psql \lo_export. Il faut passer l'OID qui a été renvoyé précédemment par lo_import (la "clef")
A l'intérieur de la base, le contenu du fichier n'a pas de chemin, il est à l'intérieur d'une table système. |
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Citation:
merci d'avance . |
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Ce n'est pas avec une requête qu'on le fait, puisqu'une requête SQL n'a aucun moyen d'écrire sur le disque de la machine cliente.
C'est le code client qui doit s'en occuper, et techniquement ça dépend dans quel langage il est écrit. Par exemple si c'est du php, il y a une fonction pg_lo_export() En Perl DBI, il y a une méthode pg_lo_export dans le driver Pg. En C il y a des fonctions pour ça dans la librairie libpq. etc... Et à un plus haut niveau on peut toujours appeler l'exécutable psql avec une commande \lo_export avec l'oid et le chemin en local du fichier à créer. |
|
|
00
|
|
|
#8 | |||
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
bonjour,
j'ai tapé cette requête sur l'éditeur PostgreSQL : Code :
Citation:
merci d'avance très cordialement. |
|||
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Citation:
je suis entrain d'écrire mon code en delphi7 et ma base de donnée est de type postgresql 8.4 . si qlqu'un connait quelque idées sur la mise en oeuvres du lo_export et lo_import sous delphi7 avec une base de donnée postgresql, merci de m'aider très cordialement . maicecomba |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Bonjour,
les fonctions lo_import et lo_export ne me servis pas paceque moi je cherche a telecharger un fichier exécutable(enregistrer dans un serveur d'avance --'le fichier exécutable lui meme pas son chemin'--)sur et apartir une machine cliente connecté via le réseau .( les fonctions lo_emport et lo_export nous servit à importer et exporter notre executable sur la même machine serveur mais en lençant la requette à partir une machine cliente connecté en distance) . je sais pas si j'ai bien formulé ma question mais voila c sa mon probléme s'il vous plait si qlq conait qlque idée n'hésiter pas à m'informer j'écris mon code en delphi 7 et mon serveur est de type postgresql 8.4. très cordialement. maicecomba |
|
|
00
|
|
|
#11 |
![]() ![]() Yoann MoreauIngénieur en laboratoire de recherche Inscription : septembre 2005 Messages : 724 ![]() |
Bonjour, ce n'est pas tout à fait clair. Mais dans tous les cas c'est le code client en delphi qui va devoir gérer le téléchargement. Que ce soit directement par un transfert de fichier (avec TIdFTP apparemment), ou bien par une requête SQL sur le serveur Postgresql depuis le client comme l'a indiqué estofilo avec lo_export (à voir avec l'API Delphi donc).
Le forum delphi sera surement d'une grande aide pour tout ça : http://www.developpez.net/forums/f15...pement/delphi/ |
|
00
|
|
|
#12 | |
|
Invité de passage
![]() maycem amor Inscription : octobre 2010 Messages : 8 ![]() |
Citation:
mais la fonction lo_export nous permet de telecharger le fichier .exe de la base de donnée sur le disc dur du serveur c à dire physiquement le fichier .exe reste tjrs sur la machine serveur et no plus sur la machine client sa c que j'ai comprid d'aprés les exemples que j'ai fais . si vous avez une autre explication merci de m'informer. très cordialement. |
|
|
|
00
|
|
|
#13 |
![]() ![]() Yoann MoreauIngénieur en laboratoire de recherche Inscription : septembre 2005 Messages : 724 ![]() |
La fonction lo_export du langage SQL de posgresql copie sur le serveur, mais la fonction lo_export de l'API postgresql copiera en local. Il faut bien entendu que la fonction soit exécutée par le code client pour copier des données chez le client.
Même chose pour l'import que tu as montré en exemple. Le fichier doit être sur le serveur pour que ta requête SQL fonctionne. Sinon tu dois passer par l'API client pour envoyer les données. Mais encore une fois, une connexion FTP ne suffirait elle pas ? |
|
00
|
Copyright © 2000-2012 - www.developpez.com