que fait ce code de ORDImage - Java - Programmation
Marsh Posté le 07-06-2011 à 23:07:34
Les balises [Java], c'était bien essayé mais non, il fallait bien laisser les balises cpp
Pour plus de lisibilité, je remets ton code dans un bloc :
Code :
|
Maintenant, regardons l'étape 2, tu mets ta connexion en autocommit="false".
Du coup, quand tu fais des modifs en base, elles ne seront pas effectuées tant que tu n'auras pas fait un commit.
Et, dans la plupart des SGBD, tu ne peux pas voir les données qui ne sont pas commités (cad, tu ne les récupères pas avec un select).
C'est pour ça que tu ne le récupère pas à l'étape 4.
Donc tu as 2 solutions:
- Virer l'étape 2. (pas très propre)
- faire un commit juste avant l'étape 4 (tu as sûrement un méthode Connection.commit())
Marsh Posté le 03-06-2011 à 00:46:57
bonsoir j'ai réussie de connecté la base de donnée et j'ai tout faire et ça va bien marche mais lorsque je vais jeter un coup d'œil dans la table dans la BD oracle j'ai rien trouvé donc l'ajout ne fonctionne pas et aussi y'a aucune requete insert comment il peut ajouter une image???
[java]// Importation des packages importants
import java.sql.*; // Pour la connexion avec Oracle
import java.io.*; // Pour les entrée sorties
import oracle.jdbc.*; // Pour les pilotes Oracle
import oracle.sql.*; // Pour les spécificités SQL d'Oracle
import oracle.ord.im.OrdImage; // Pour la classe OrdImage
import oracle.ord.im.OrdImageSignature; // Pour la classe OrdImageSignature
public class Ajout_OrdImage {
public static void main(String[] args) {
try {
// Etape 1 : Création de la connexion avec la base
// Enregistrement du pilote Oracle
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// Ouverture de la connexion avec la BD
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@host:1521:nomdb", // url de la base
"benoit", // utilisateur
"secret" ); // mot de passe
// Etape 2 : Mise à false de l'autocommit
conn.setAutoCommit(false);
// Etape 3 : Initialisation de l'attribut ORDImage
// Ecriture de la requête SQL
String sql = "UPDATE MaTable SET image=ORDSYS.ORDImage.init() WHERE id=1";
// Création d'une instance d'un Objet Statement
Statement stmt = conn.createStatement();
// Execution de la requête
stmt.execute(sql);
// Etape 4 : Récupération du descripteur
// Ecriture de la requête SQL
String sql2 = "SELECT image FROM MaTable WHERE id=1 FOR UPDATE";
// Execution de la requête et récupération du résultat
OracleResultSet rset=(OracleResultSet) stmt.executeQuery(sql2);
// S'il y a un résultat
if( rset.next()) {
// Récupération du descripteur d'OrdImage
OrdImage imgObj = (OrdImage) rset.getORAData(1, OrdImage.getORADataFactory() );
// Etape 5 : Envoi de l'image
// Création d'un bloc try{}catch pour l'exception d'entrée/sortie
try{
// Envoi de l'image dans l'attribut localData du type ORDImage
imgObj.loadDataFromFile("c:\\image.jpg" );
}[/java]
---------------
saluuut