Inserer un Object de type BLOB ou CLOB dans une base Oracle [Résolu]

oh_biba 11 Messages postés mercredi 15 juin 2005Date d'inscription 10 août 2006 Dernière intervention - 30 sept. 2005 à 11:05 - Dernière réponse : oh_biba 11 Messages postés mercredi 15 juin 2005Date d'inscription 10 août 2006 Dernière intervention
- 30 sept. 2005 à 11:58
Bonjour, je suis relativement perdu quant a ce
probleme : Je souhaite stocker des fichiers dans une base Oracle depuis
appli web (C#). Comment faire, sachant que le seule chose que je permet
a l'utilisateur sera d'entrer le chemin du fichier a enregistrer ?



D'avance Merci aux experts qui pourront m'aider



Biba
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 30 sept. 2005 à 11:55
3
Merci
ca devrait être pas mal ca :


public
byte[] FileToBytes(
string filename)
{

if (!File.Exists(filename))
{

return
null;
}

FileStream fs =
new FileStream(filename, FileMode.Open);
BinaryReader stream =
new BinaryReader(fs);

byte[] bytes = stream.ReadBytes(stream.BaseStream.Length);
stream.Close();
fs.Close();

return bytes;
}

Sébastien FERRAND

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de sebmafate
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 30 sept. 2005 à 11:34
1
Merci
un exemple de code pour la requête :



public
int AddNewImageToDemande(

int dem_id,

byte[] image,

string text
) {

this.DBCommand.CommandText =
"INSERT INTO IMAGES (IMG_ID, DEM_ID, IMG_BINARIES, IMG_TEXT) "
+
"VALUES(SEQ_IMAGES.NEXTVAL, :DEM_ID, :IMG_BINARIES, :IMG_TEXT)";

this.DBCommand.CommandType = CommandType.Text;

if (
this.useTransaction)

this.DBCommand.Transaction = (OracleTransaction)trans;

this.DBCommand.Parameters.Clear();

this.DBCommand.Parameters.Add(
"DEM_ID", OracleType.Number);

this.DBCommand.Parameters.Add(
"IMG_TEXT", OracleType.Clob);

this.DBCommand.Parameters.Add(
"IMG_BINARIES", OracleType.Blob);

this.DBCommand.Connection =
this.oraConn;

this.DBCommand.Parameters[
"DEM_ID"].Value = dem_id;

if (text ==
string.Empty) {

this.DBCommand.Parameters[
"IMG_TEXT"].Value = OracleLob.Null;
}
else {

this.DBCommand.Parameters[
"IMG_TEXT"].Value = text.Replace(
"'",
"''");
}

this.DBCommand.Parameters[
"IMG_BINARIES"].Value = image;

return
this.DBCommand.ExecuteNonQuery();
}
}

Sébastien FERRAND
Commenter la réponse de sebmafate
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 30 sept. 2005 à 11:24
0
Merci
les champs de type CLOB ou BLOB sont des champs de byte (byte[]), il suffit donc que tu charges le flux du fichier dans une stream...

Sébastien FERRAND
Commenter la réponse de sebmafate
oh_biba 11 Messages postés mercredi 15 juin 2005Date d'inscription 10 août 2006 Dernière intervention - 30 sept. 2005 à 11:28
0
Merci
Excuse ma candeur, mais aurais-tu un quelconque exemple de code ?
Commenter la réponse de oh_biba
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 30 sept. 2005 à 11:38
0
Merci
après pour transformer un fichier en byte[], ca dépend des fichiers... mais j'essaye de te faire un truc générique

Sébastien FERRAND
Commenter la réponse de sebmafate
oh_biba 11 Messages postés mercredi 15 juin 2005Date d'inscription 10 août 2006 Dernière intervention - 30 sept. 2005 à 11:42
0
Merci
Merci beaucoup. En l'occurence, les fichiers sotckes seront des archives Zip, mais ca ne devrait influer en rien sur traitement.
Commenter la réponse de oh_biba
oh_biba 11 Messages postés mercredi 15 juin 2005Date d'inscription 10 août 2006 Dernière intervention - 30 sept. 2005 à 11:58
0
Merci
Merci beaucoup, je vais m'y essayer de ce pas ;)
Commenter la réponse de oh_biba

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.