begin process at 2010 02 09 18:16:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Divers

 > 

Débutant(e)

 > 

Récupérer image de la BDD


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer image de la BDD

mercredi 16 janvier 2008 à 09:55:11 | Récupérer image de la BDD

atar64

Bonjour,

Ayant récupérer un existant projet sous foxpro, je cherche à extraire des fichiers bmp de la base foxpro. Mais je n'y arrive pas pouvez vous m'indiquez une source ou une procédure à mettre en place.

Merci par avance
mercredi 16 janvier 2008 à 13:18:40 | Re : Récupérer image de la BDD

Mike Gagnon

Membre Club
Est-ce que ces images sont dans un champ General? Ou Blob?

Mike Gagnon
mercredi 16 janvier 2008 à 13:30:50 | Re : Récupérer image de la BDD

Mike Gagnon

Membre Club
Si les images sont dans un champs General voici le concept.
1. Faire un select sur la table pour créer une table temporaire qui contient seulement le record qui te préoccupe.
2. L'image est contenue dans le fichier fpt, donc pas besoin des deux autres fichier (dbf et cdx)
3. Utiliser FILETOSTR() sur ton fichier fpt pour en faire une chaine charactère.
4. L'image techniquement commence a peu près au 599 ième charactère (ce qui est avant est l'information de l'association du fichier image avec le programme qui va ouvrir l'image sur ton ordinateur. Donc utilise la fonction RIGHT() pour enlever les premiers 599 charactere.
5. Ce qui te reste est ton image, utilise STRTOFILE () pour créer un fichier image

Mike Gagnon
vendredi 1 février 2008 à 15:53:17 | Re : Récupérer image de la BDD

atar64

Et t'on obliger de faire un select avec un seul record.

J'utilise un autre langage(.Net), j'accède à la base via ODBC. Puis je retirer les 599 caractères du champ qui est en général.

Merci
Dsl pour avoir mis autant de temps à répondre.
vendredi 1 février 2008 à 22:06:45 | Re : Récupérer image de la BDD

Mike Gagnon

Membre Club
>>>Et t'on obliger de faire un select avec un seul record.

Pour y retirer une seule image, oui .    Tu dois savoir utilise SELECT from.....en .net?

>>>J'utilise un autre langage(.Net), j'accède à la base via ODBC. Puis je retirer les 599 caractères du champ qui est en général.

Alors tu pose la question dans le mauvais forum. Je ne connais pas l'équivalent de FILETOSTR() en .net (qui n'est pas un language en soi), mais peut-etre poser la question sur un forum .net

Mike Gagnon
samedi 2 février 2008 à 00:33:40 | Re : Récupérer image de la BDD

atar64

>>>> Pour y retirer une seule image, oui .    Tu dois savoir utilise SELECT from.....en .net?

L'entête n'est donc pas lié au champs même, mais à un ensemble de résultat? Sinon je pourai les parcourir un par un avec un SELECT général, non ?
Oui je sais utiliser un select, j'ai déjà récuperer toutes les info en dehors de l'image qui est contenu dans un champs général.

>>>> Alors tu pose la question dans le mauvais forum
Non car la bdd est Foxpro, et le problème tient à l'encapsulation de l'image dans la bdd Foxpro (A ma connaissance il y a pas de forum spécifique à la bdd, d'ou l'utilisation de ce forum).

>>>> .net (qui n'est pas un language en soi)
Oui, mais je maitrise C# et vb.Net donc n'importe quel exemple est compréhensible, de plus les méthodes sont identiques dans tout le framework donc pas spécifique à un langage.

Résumé :
1. Je fais un SELECT sur un enregistrement particulier
2. J'optiens une chaine de charactère, à la quelle j'ote les 598 premiers caractères.
3. J'optiens un fichier image.

C'est sa?

Merci d'avance pour le temps que tu m'accorde.
samedi 2 février 2008 à 14:06:01 | Re : Récupérer image de la BDD

Mike Gagnon

Membre Club
Je ne sais pas vraiment si la technique fonctionne en C# ou VB.net mais voici comment on fait en VFP, avec des fonctions de bas-niveau
COPY TO temp FIELDS photo NEXT 1 && Copier le champs que l'on désire dans une table

handlein = FOPEN(temp.fpt) && ouvrir le fichier fpt qui contient l'image
handleout = FCREATE(temp.bmp) && créer un fichier bmp temporaire
gnEnd = FSEEK(handlein,0,2) && trouver la fin du fichier
gnTop = FSEEK(handlein,0) && commencer au début du fichier
str1 = FREAD(handlein, gnEnd) && rammasser l'information binaire d'image
stop=AT('BM',str1) && trouver le début de l'image, normallement au 599 charctère
str2 = RIGHT(str1, LEN(str1)-stop+1) && retirer le restant des charactères
x = FWRITE(handleout, str2) && copier ce qui reste dans le fichier BMP

=FCLOSE(handlein) && fermer le fichier
=FCLOSE(handleout)


Mike Gagnon
lundi 25 février 2008 à 17:58:03 | Re : Récupérer image de la BDD

atar64

Je suis toujours sur mon probleme.
Je souhaite passer d'une base foxpro à une SQL Server 2005.
La table ressemble à ceci :
+-------+--------+--------+
|   Nom  | Prenom | Photo   |
+-------+--------+--------+
| Dupont | Albert  |              |

L'image est dans un champs général.
J'arrive très bien à extraite les données que ce soit en ODBC, OLEDB, ...sauf les images. Je n'arrive à les extraire qu'en utilisant cet exemple : http://support.microsoft.com/kb/894819/fr
(J'ai également réussi en utilisant OLEDB mais j'ai un  gros tot de perte (30%) pour une raison qui m'échape)

Cependant maintenant je n'arrive pas a relier les 2 parties de l'information (Nom et Photo) car sur des tables volumineuses, un décalage se créer (Du au fait que certaines fiches n'ont pas de photos)

Et t'il possible de rajouter un numero auto à la table. Puis de nommer les images, par ce numero?

Merci
Mike Gagnonmais vu que tu part sur le .fpt je ne pense pas pouvoir relier le tout.

J'ai beaucoup de mal, à trouver une doc complête, si il n'est pas possible de répondre à ma question, pouvez vous m'indiequer vos sources.

Merci d'avance, un développeut qui galère bcp.
mardi 26 février 2008 à 17:50:33 | Re : Récupérer image de la BDD

atar64

Réponse acceptée !
Problème résolu.
J'ai utilisé OLEDB/.Net et méthode de porc équivalent à la soluce du lien microsoft.


Cette discussion est classée dans : récupérer, image, bdd, foxpro


Répondre à ce message

Sujets en rapport avec ce message

Visual foxpro et access [ par steboy ] Bonjour, Je dois récupérer dans une table DBF des données d'une table access. <P class=MsoNo image et documentation [ par jee0404 ] Bonjour,        J'ai deux problèmes : 1er Problème :    J'ai un programme de foxpro en Dos et il faut que je migre en Visualet je voudrais être de gén problème d'insertion d'image dans une base foxpro [ par guyantoinemav ] Bonjour, j'ai un soucis pour insérer des images dans ma base foxpro. J'ai une application VFP 6 que je veux migrer vers c# en conservant la base de do Connexion à FoxPro via php [ par loulou59 ] Bonjour, J'ai besoin de construire un Intranet en m'appuyant sur une bdd sous FoxPro. L'intranet est développé en php. J'ai pu faire une connexion vi SQLSERVER COMPACT ET FOXPRO [ par panterga ] Bonjour J'utilise visual studio 2005 en C# pour développer une appli sur PDA , cette application utilise SQLSERVER compact pour stocker des données e execution de windows media player 9 par foxpro [ par halimh ] salut svp j'ai besoin de connaitre la commande foxpro qui me permet de lire un ficheir video par windows media player 9 de manière automatique y a t'i foxpro et vista [ par info_maroc ] bonjour tout le monde j'ai installé une application développée sous visual foxpro 9 sur un pc équipé avec windows vista, l'application se lance norma api de foxpro [ par jee0404 ] bonjour a tous,                 j'ai un problème pour l'affichage de mes menus en window sur un screen de foxpro. J,ai cherché dans l'aide pour tradui Recherche planning en foxpro [ par reefounet ] Bonjour à tous, Quelqu'un a-t-il cela dans ses tablettes ?MerciBenoît decouverte de foxpro [ par cudenetf ] Bonjour, je n'ai jamais programmé sous foxpro... PAr contre , j'ai un programme developpé sous foxpro 2 (DOS) a "convertir" . J'aimerais savoir s'il e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales