Salut
Comment faire une base de donnée contenant des images et des sons et non pas leurs chemins.
Merci d'avance...
Salut
Comment faire une base de donnée contenant des images et des sons et non pas leurs chemins.
Merci d'avance...
Vive Delphi !!
Utiliser des champs BLOB (stockage de données binaires de taille variable)
Y accéder par LoadFromStream
Bonjour,
Pourriez vous m'expliquer comment lire puis executer les sons à partir d'un champ BLOB Paradox.
Merci par avance
comment lire
Code : Sélectionner tout - Visualiser dans une fenêtre à part TBlobField.SaveToFile(atempFile);executerCe n'est qu'une solution parmi d'autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 aMediaPlayer.filename := atempfile; aMediaPlayer.Play
Bonjour,
J'ai essayé de charger le champ Blob (Binaire) avec:
TBlobField.LoadFromFile(aFileName);
Il semble que les données ne soient pas correctes dans le champs car lors de la récupération par:
TBlobField.SaveToFile(atempFile);
Le fichier .Wav obtenu est illisible alors que l'original est tout à fait correct.
Merci de votre aide.
y a-t-il une différence de taille ?
Parce qu'un paramètre du BDE limite la taille des blobs
Voir dans Administrtateur BDE du Panneau de configuration, sur l'alias le paramètre "BLOB SIZE"
Bonjour,
merci de votre réponse, mais je n'ai trouvé aucun paramètre "Blob Size" dans l'alias de ma base de donnée.
Merci de votre aide
Autant pour moi, ce paramètre n'existe pas pour Paradox.
La limite officielle est de 2 Go.
J'ai fait un test pour vérifier ; je n'ai rencontré aucun problème (D5 entreprise).
Pouvez-vous faire une comparaison du fichier source et du fichier récupéré après avoir transité dans la base ? :
Bonjour
Merci de votre réponse.
Les fichiers
.Wav que je tente de placer dans ma base font de 170 à 230 Ko chacun.
A la récupération, j'ai bien un fichier .Wav, mais de 0 octet.
C'est donc au chargement que se situe le problème.
En effet lorsque jj'utilise le même code pour lire un Wave directement, cela fonctionne parfaitement.
Merci d'avance de votre aide.
Upload :
Download (vérifier que l'enregistrement courant contient bien le son)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 table1.append; table1son.loadfromfile('BANG.WAV'); table1.post;
le 0 octet peut provenir d'un BLOB vide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 table1son.savetofile('BANG2.WAV');
Le source permettrait peut-être de trouver l'erreur.
Merci
pour ces explications.
Voic le code que j'utilise:
Upload:
Download (dans une autre application):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Chemin:= ExtractFilePath(Application.ExeName); Table1.Edit; Chemin:= Chemin+ 'Sons\Sound '+ Edit3.Text+ '.wav'; Table1Son.LoadFromFile(Chemin );
Le fichier .Wav est bien créé, mais il pèse 0 octet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Chemin:= ExtractFilePath(Application.ExeName); Table1Son.SaveToFile(Chemin+ 'Son.wav'); Son:= IntTostr(Query1.RecNo); PlaySound(Pchar(Chemin+ 'Son.wav'),0,SND_FILENAME);
Je pense que le problème provient de l'upload.
Le champ utilisé pour stocker le son est un BLOB Binaire dans une base Paradox 7 créée à partir du module de Base de données de Delphi7.
Voici les éléments utilisés dans la structure du champ:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 3 Son B 240
J'ai résolu le problème en étudiant de près le code.
La lecture du champs se fait sur Une Table, alors que l'affichage des données se fait sur un Query.
Quel ?*!? je peu faire.
Un autre problème se pose.
Il n'existe pas de SaveToFile sur un Query.
Comment contourner le problème simplement?
Merci
Je pense qu'il y a confusion :La lecture du champs se fait sur Une Table, alors que l'affichage des données se fait sur un Query.
Quel ?*!? je peu faire.
Un autre problème se pose.
Il n'existe pas de SaveToFile sur un Query.
Comment contourner le problème simplement?
SaveToFile est une méthode de l'objet TBlobField, qui peut être aussi bien retourné par une Table qu'un Query.
Le choix du dataset est donc indifférent pour un download.[/list]
Après de multiples essais, je confirme bien que mon Query ne possède pas de méthode SaveToFile.
merci quand même pour votre aide.
En double-cliquant sur le TQuery, puis Ctrl-F
la liste des champs disponibles retournés par la requête s'affiche
En sélectionnant un champ, il apparaît dans l'explorateur d'objet, avec sa classe
Si un BLOB est retourné par le query, il doit y avoir dans la liste des champs un TBLOBField
C'est cet objet qui disposera de la méthode SaveToFile
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager