PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 11/01/2010 10:43:53

buzzer.06
Membre

[RÉSOLU] OID et BLOB

Bonjour à tous,

Je me permets créer un nouveau sujet n'ayant pas trouvé mon bonheur dans ceux existants.

Je cherche à créer une table avec un champ de OID pour pouvoir encregistrer des BLOBs dans la base de données. Pour ce faire, j'ai créer une table :
CREATE TABLE fruit
(
  seq integer NOT NULL,
  "name" character(20) NOT NULL,
  image oid,
  CONSTRAINT pk_seq PRIMARY KEY (seq)
)
WITH (OIDS=TRUE);
ALTER TABLE fruit OWNER TO postgres;

J'y insert un enreg. par :
insert into fruit values (1,'peche',lo_import('C:\Documents and Settings\All Users\Documents\Mes images\Échantillons d'images\Collines.jpg'));

Le résultat sur la console est : Le titre est « ollines.jpg')) ».

Et bien entendu il n'y a pas un row dans la table. On dirait que c'est les '\' qui le gène. Je suis sous Windows comment faire autrement ?

Peut-être '/' à la place de '\'.

Merci de vos idées.

Jean-Yves

Hors ligne

#2 11/01/2010 11:18:16

Marc Cousin
Membre

Re : [RÉSOLU] OID et BLOB

Sous Windows, malgré tout, il faut utiliser des / comme séparateurs de réportoire.

Par ailleurs, méfiez vous des problèmes d'encodage : il est tout à fait possible que les caractères accentués saisis dans la console ne soient pas dans le même encodage que dans le système de fichier (le système de fichier est probablement en utf16 alors que votre console risque d'être en codepage 1252 ou quelque chose du genre).

Commencez donc sans complication : essayez d'importer un fichier se trouvant dans C:\temp, ne comportant ni accent ni espace. Rajoutez ensuite les autres difficultés une par une (espace, caractère accentué…).

Dernière modification par Marc Cousin (11/01/2010 11:18:29)


Marc.

Hors ligne

#3 11/01/2010 12:18:09

buzzer.06
Membre

Re : [RÉSOLU] OID et BLOB

Bonjour,

Merci ça marche maintenant, j'ai utiliser le gestionnaire de requête de pgAdmin III qui a l'avantage de renvoyer les erreurs, voici le resultat :

INSERT INTO fruit(
            seq, "name", image)
    VALUES (1,'hiver', lo_import('c:/temp/hiver.jpg'));

La réquête s'est terminée avec succés : insertion d'une ligne avec l'OID 25451. La requête a été exécutée en 94 ms.

Encore merci.

Jean-Yves

Hors ligne

Pied de page des forums