|
|
|
|
Bonjour
Je n'arrive pas à afficher une image provenant d'une base de donné dans un contrôle. Le seule moyen qui fonctionne c'est en utilisant un control OLE pour l’image, lié à un control MSRDC pour la liaison à la base, c'est à dire un contrôle MS Remote Data Control. Or Microsoft préconise d'utiliser plutôt l'ADO. Avec un controle de type Adodc la liaison ne se fait pas ni avec un control PictureBox ni avec un control Image. Et le control OLE ne reconnaît pas l'Adodc. J'utilise une base Pervasive par une connexion ODBC. Est-ce que quelqu'un a une idée ? Merci à tous Michel |
Je ne peux malheureusement pas répondre à ta question. Je poste ce message car j'ai moi un probleme que tu peux peut-etre résoudre. Je souhaite me connecter aux bases EBP qui tourne avec pervasive. Malheureusement, je ne sait pas comment creer le lien dans l'ODBC.
Peux-tu m'indiquer la démarche à suivre. Par avance merci. Jujeco
|
Réponse à Maddod:
Ma solution a été de ne pas incorporer les images dans la base mais de les lier. Les images sont donc en fichier sur le disque, ce qui convenait tout à fait pour mon application et résout tous les problèmes. Désolé ! Réponse Jujeco: Je viens de faire un essai en créant une source de données ODBC avec le driver de Pervasive (si tu ne l’as pas je pourrais peut-être te l’envoyer). Ma comptabilité est aussi EBP. Je n’ai pas abouti car je n’ai pas converti ma base EBP en Pervasive (elle est restée au format BTRIEVE), donc je n’ai pas de conclusion. Mais je pense que cela vaut le coup que tu fasses un essai (c’est rapide) Pour créer le lien ODBC il faut, sous XP : - Démarrer – Panneau de configuration – Performance et maintenance – Outils d’administration – Source de données ODBC - Une boîte de dialogue s’ouvre - Choisir l’onglet System DSN et le bouton Add… - Une boîte de dialogue s’ouvre - Choisir le driver Pervasive Engine Interface puis le bouton Create - Choisir Browse pour le dictionnaire en allant sur le répertoire de tes fichiers Pervasive (extension MKD) - Donner un nom à la base de données, donner un DSN (nom de ta source de données) - Le tour est joué Tu peux ensuite essayer de voir les tables par ACCESS par exemple en les liants et en choisissant l’option source de données dans la liste déroulante. J’espère avoir été clair A+ Michel
|
EBP propose automatiquement la conversion lorsque Pervasive est installé.
J'ai Pervasive car c'est la base fournie avec Maximizer Maximizer étant un logiciel de CRM. Et j'ai une licence de Maximizer qui m'a été fournit par un de mes clients. Autrement Pervasive n'est pas gratuit. Tu peux le télécharger en version d'essai sur : http://www.pervasive.com/downloads/businessintegrator.asp Une autre solution : se procurer (par exemple sur le NET) un driver ODBC pour BTRIEVE. Bon courage Michel |
Bonjour,
Merci pour les reponses, mais ... EBP ne me propose pas la conversion. Je possède la gestion commerciale v8 pro, ainsi qu'une licence d'acces aux donnees. Mais aucune information pour creer un lien odbc. J'arrive bien à creer un lien sur une base pervasive vide, mais pas sur la base ebp. Merci |
Je ne t’ai pas répondu car je suis sec. As-tu réglé ton problème ?
Je n’ai pas la gestion commerciale de EBP mais la comptabilité Libérale. EBP me propose la conversion car j’ai Pervasive 8 d’installé et le moteur résidant en mémoire car ce dernier se lance automatiquement au démarrage du PC. Voilà ce que je peux dire. A+ Michel |
Bonjour,
je n'ai plus fait de tests depuis par manque de temps. Merci. |
Bonjour tout le monde.
Effectivement accéder aux données de la base EBP est assez compliqué. Moi g un projet concernant GESCOM pro V8 et je doit pouvoir modifier les données des tables Btrieve avec une autre appli que EBP. C possible avec pervasive et access. Il faut d'abord créer une base dans pervasive compatible SQL et basée sur les tables Btrieve, pour cela l'assistant est assez bien fait. Ensuite il faut créer les tables et là c beaucoup plus compliqué. Pour chaque table il faut spécifier la structure interne, et ça, Pervasive le fait assez mal, il y a plein de champs qu'il passe à la trappe (en fait on est sûr de retrouver seulement les champs qui sont indexés), ensuite il faut tout faire à la main : la galère. Enfin, après cette longue phase, moi g ouvert access, et g créé des tables liées à celles de pervasive et là access fait le reste. quand on modifie des données dans access, elles sont modifiées dans EBP et vice-versa. ATTENTION je n'ai pas testé si ç respecte les règles d'intégrité donc si vous faites une appli pour des utilisateurs, sécurisez un max. Boilà en espérant que cela vous aide.
|
Pour accéder aux données, rien de plus simple! Non je rigole. La première étape qui n'est pas mentionnée par EBP est qu'il faut acquérir une license en plus de la license EBP (150 €!). Pour cela l'assistance d'EBP vous renseigne. Ensuite il faut aller dans EBP et modifier les paramètres au niveau de la license : Il faut cliquer sur le bouton option et rentrer dans le nouveau champ le code de débridage donné par EBP. On n'est pas au bout. Ensuite il faut (ré)installer le moteur pervasive à partir du cd (onglet aide). Il se peut que EBP ne démarre plus après cela, il faut alors aller voir dans les utilitaires (C:\Programme Files\EBP\EBPclean.exe) et ne laisser que le moteur pervasive. Si ça ne marche toujours pas, il faut désinstaller le moteur pervasive, supprimer le répertoire C:\PVSW et refaire une install à partir du CD (C bon quand il demande de faire une install 'Custom' ou 'Typical'). Bon là, l'install est bonne. Maintenant il faut configurer le control center (tous les prgmes -> pervasive -> control center). Mais là c'est de la config 'normale' je dirais, il suffit d'ajouter une database engine et il crée un lien odbc. Voilà, après on peut causer entre VB et EBP |
J'ai eu pour une de mes applications le même problème que toi. En surfant sur le net, j'ai trouvé des codes permettant de mettre dans une base de données type access des images. Il faut que dans une table, tu crées un champs du type "Objet OLE". Pour ma part j'utilise l'activex ADO (DAO360.dll) qui permet d'avoir un meilleur controle sur les bases de données. L'achtuce que j'utilise est de passer par un fichier temporaire pour stocker l'image à sauvegarder dans la base de données ou à extraire de la base de données. Il n'empèche qu'utiliser DAO ou ADO revient grosso modo au même hors mis que ADO est peut être un peu moins boggé....
Quoi qu'il en soit, voila le code que j'utilise (et qui n'est pas de moi) mais qui me donne pleine satisfaction. Avec la taille des images que j'utilise, on remarque à peine qu'elles viennent de la base de données. Bon allez fini les blabla, voila le code: (à placer dans un module) Public Function SavePictureToDB(PictControl As Image, RS As Object, FieldName As String) As Boolean 'PictControl est le controle contenant l'image à sauvegarder 'RS est le recordset que j'utilise pour balayer la base de données 'FieldName le champs ou stocker l'image Dim oPict As Image Dim sDir As String Dim iFileNum As Integer Dim lFileLength As Long Dim abBytes() As Byte Dim iCtr As Integer Dim sTempFile As String On Error GoTo ErrorHandler Set oPict = PictControl If oPict Is Nothing Then Exit Function 'Save picture to temp file sDir = Utils.Get_TEMP_Directory If sDir = "" Then sDir = "C:\" sTempFile = sDir & "0X2341KLZX.dat" Reset SavePicture oPict.Picture, sTempFile 'read file contents to byte array iFileNum = FreeFile Open sTempFile For Binary Access Read As #iFileNum lFileLength = LOF(iFileNum) ReDim abBytes(lFileLength) Get #iFileNum, , abBytes() 'put byte array contents into db field RS.Fields(FieldName) = abBytes() Close #iFileNum 'Don't return false if file can't be deleted On Error Resume Next Reset Kill sTempFile SavePictureToDB = True ErrorHandler: End Function Public Function LoadPictureFromDB(PictControl As Object, RS As Object, FieldName As String) As Boolean 'PictControl Controle contenant l'image à sauvegarder 'RS le recordset utilisé pour balayer la base de données 'FieldName le nom du champs où stocker l'image Dim oPict As StdPicture Dim sDir As String Dim sTempFile As String Dim iFileNum As Integer Dim lFileLength As Long Dim abBytes() As Byte Dim iCtr As Integer sDir = Utils.Get_TEMP_Directory Set PictControl.Picture = Nothing If sDir = "" Then sDir = "C:\" sTempFile = sDir & "0X2341KLZX.dat" If FS.FileExists(sTempFile) Then FS.DeleteFile sTempFile, True On Error GoTo ErrorHandler iFileNum = FreeFile Open sTempFile For Binary As #iFileNum lFileLength = LenB(RS.Fields(FieldName)) abBytes = RS.Fields(FieldName).GetChunk(0, lFileLength) Put #iFileNum, , abBytes() Close #iFileNum Set PictControl.Picture = LoadPicture(sTempFile) PictControl.Refresh Kill sTempFile LoadPictureFromDB = True ErrorHandler: Reset End Function Pour information, ma base de données contient près de 350images (150x150 environ) et pèse 53Mb mais il y a également le texte, ... J'espère que vous trouverez du bonheur dans ma tartine! Bon amusement. |
Bonjour tout le monde, j'ai un problème qui ressemble beaucoup à ceux cités plus haut :
Je créé un site internet (PHP-SQLServer) qui pioche ses données dans une base de données EBP. J'utilise PervasiveSQL v8 pour récupérer les données de la base. Le problème est que je souhaite récupérer des images de cette base mais qui sont insérées dans la table par le logiciel de Gestion Commerciale EBP v9. Avec le driver de pervasive je n'arrive pas à récupérer ces images et c'est vraiment très ennuyeux. Comme vous l'aurez compris je n'ai pas la possibilité de modifier la façon dont les images sont enregistrées dans la base, donc si quelqu'un a eu le même problème et a trouvé une solution pour récupérer ces images, qu'il n'hésite pas à m'en faire part. Merci d'avance pour vos réponses !
|
Bonjour Philippe, il n'y a pas de problème si je peux te rendre service.
Dans notre cas, nous avons acheté chez EBP un module d'accès à la base de données. En gros ce module utilise un driver ODBC de PervasiveSQL qui nous permet de récupérer les données dans la base EBP (Il s'agit du Pervasive ODBC ENGINE Interface, il existe aussi CLIENT Interface mais nous on ne l'utilise pas). Nous utilisons SQLServer pour notre appli et pour accéder à la base il ne nous reste plus qu'à créer un serveur lié qui pointe sur la source de données ODBC créée avec le driver Pervasive. Le message Ajouté par nono (03/12/2004) explique comment installer ce module. En fait ce module permet (si je ne me trompe pas) d'accéder aux fichiers .btr et autres pour créer la base sous pervasive donc je sais pas si en n'ajoutant pas ce module à EBP il est quand même possible de lire ces fichiers. Bon je sais pas si je t'ai apporté plus de précisions, bonne chance pour la suite ! |
Vous utilisez la version EBP avec le SQLServer de chez Microsoft ?
Nous utilisons la version Client/Serveur de Pervasive, pour le moment nous utilisons seulement le mode poste-à-poste, mais le serveur PervasiveSQL est installé sur le serveur. Je n'ai qu'à demander le driver ODBC à EBP pour ma version Client/Serveur de Pervasive SQL... Peut-on modifier la base sans passer par EBP ? Merci encore Philippe
|
Bonjour a tous,
J'ai un pbs avec ebp v 11.1 gestion commercial et j'espere que quelqu'un pourra m'aider. J'utilise une version monoposte, mais pour mon travail dans plusieurs bureaux, j'ai besoin d'avoir accés aux données d'autres pc. Y a t'il un moyen d'utiser le logiciel monoposte en multiposte ? Merci d'avance Configuration: Windows XP Internet Explorer 7.0 |
En fait tu peux installer ebp en multiposte ( choisir l'installatoion réseau ) avec une licence monoposte.
Mais lors de l'utilisation 1 seul utilisateur pourra consulter le dossier ouvert. Par contre tu peux travailler en simultané sur des dossier différent. Si tu veux pouvoir travailler en même temps sur les postes tu n'as pas le chois achetes la version réseau. |
Bonjour à tous !
je pense effectivement que c'est le seul sujet sur le net en Français qui traite de ces problèmes de EBP et de sa base de données ! En fait, moi je veux créer une application en .NET que je donnerais à mes clients utilisateurs de EBP pour pouvoir récupérer leur données sous format txt par exemple. je n'arrive pas à trop comprendre pour EBP, en fait est ce que l'installation de EBP installe automatiquement Pervasive ? du coup il suffisait de récupérer le ODBC et de créer une DNS avec Access par exemple pour pouvoir récupérer la base de mon client ? ou bien faut il transformer la base de btrieve à pervasive avant ? faut il avoir le module payant de chez EBP pour accéder aux données de la base ? Merci de votre aide. |
Bonjour,
je viens de tomber sur ce forum en cherchant à quoi sert Pervasive Database ... excusez moi, je ne suis pas du tout branchée informatique, mais j'aime bien savoir ce que j'installe sur mon pc. en effet, ayant fait l'aquisition d'EBP compta, en installant ce dernier je me vois "contrainte" d'installer ce fameux "Pervasive Database". est ce que quelqu'un veut bien m'expliquer le plus simplement possible à quoi ça sert ? je vous remercie d'avance. |
Bonjour !
Persuasive database sert à EBP pour accéder à ses bases de données... Il faut donc bien l'installer ... comme tu l'as peut-être déjà remarqué aujourd'hui ! Jo. |