infkb
Messages postés46Date d'inscriptionmercredi 10 août 2005StatutMembreDernière intervention18 janvier 2011
-
21 sept. 2005 à 20:26
cs_lamane
Messages postés20Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention 1 avril 2007
-
2 oct. 2005 à 12:57
Salut,
Je fais une petite application dont j'insère les données dans une base de données Oracle , j'insert dans une table appelé Dep dont le format de la date est: 'dd/mm/yy' la table est constituée de 2 champs la clé est number puis la date
create table Dep (Num VARCHAR2(10) primary key,
Datm date NOT NULL);
Puis je transforme la date dans le programme mais ç me donne le resultat suivant: Pb d execution de la requete.
voici le programme:
import java.util.*;
import java.sql.Date ;
import java.text.DateFormat;
import java.util.Locale;
import java.sql.*;
import java.sql.Date ;
class date {
public static void main(String[] args)throws Exception{
int nbe;
Connection c=null;
ResultSet r=null;
ResultSet req=null;
Locale locale = Locale.getDefault();
// Création de la date
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
java.util.Date dt2 = dateFormat.parse("11/06/82");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
}catch(SQLException e){System.out.println("Classe not Found");}
catch( ClassNotFoundException e){
System.exit(0);
}
System.out.println("Insertion d un nouvel enregistrement");
try {
Statement s = c.createStatement();
nbe=s.executeUpdate("insert into Dep values('Dep2',dt2)");
System.out.println("Nombre d enregistrements mis a jour est "+nbe);
}catch(SQLException e) {System.out.println("Pb d execution de la requete");
}
try {
Statement s1 = c.createStatement();
r =s1.executeQuery("select * from Dep");
}catch(SQLException e) {}
//Parcours des enregistements
try {
ResultSetMetaData n=r.getMetaData();
int nbcol=n.getColumnCount();
boolean trouve=r.next();
while (trouve){
for(int i=1;i<=nbcol;i++)
{
System.out.print(r.getString(i)+"");
System.out.println();
}
trouve=r.next();
}
r.close();
}catch(SQLException e){}
}
}
Ce qui me gêne dans ton source, c'est ta requête de mise
à jour. La méthode executeUpdate n'interprète pas les nom de variable
dans la chaîne SQL. Si le code que je te fournit te convient, regarde
également l'utilisation des java.sql.PreparedStatement
cs_lamane
Messages postés20Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention 1 avril 2007 2 oct. 2005 à 12:57
bon votre probleme est simple
vous avis mis cette reauette comme suit
nbe=s.executeUpdate("insert into Dep values('Dep2',dt2)");
est bien evidament c4est faut car.
votre requette est une chaine de caractere alors elle va etre envoyer au sgbd exactement comme vous l4avez saisie par contre si tu fait comme suit vous allez inchalah reussie .
nbe=s.executeUpdate("insert into Dep values('"+Dep2+"',"+dt2"+)");