UPdate problème SQL SERVER 2000

coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006 - 20 août 2004 à 14:38
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006 - 23 août 2004 à 13:43
Bonjour,

Voilà j'ai un petit problème, je travail sur une application qui doit écrire et faire quelques update dans une base de données SQL server 2000 sp2, je n'ai aucun problème pour faire un INSERT mais lorsque je fais un update le compilateur reste bloqué sur :

int intinsetrt=statm.executeUpdate(requete);

Je suis allors obligé de fermer Eclipse et de le relancer.

je n'ai aucun message d'erreur du compilateur... Seulement si j'ouvre la console MMC de SQL et que je veux visualiser les données de ma table, il travail mais rien ne s'affiche et après 2min j'ai un message "SQL délai d'attente expiré" s'affiche.

Voilà je suis relativent en merdé, merci à ceux qui me donnerons leurs conseils.

Coyote_fx

Station de travail en win 2000 pro
JDK 1.4.2
Eclipse 3.0
SQL Server 2000 sp2

Dans la requete SQL (exemple) :
-------------------
UPDATE NOEUDS SET ID_ETAT=2,SYSNAME_NOEUD='COYOTE',SYSLOCALISATION_NOEUD='',SYSSERVICES_NOEUD=0,SYSDESC_NOEUD='',SYSCONTACT_NOEUD='',IFNUMBER_NOEUD=0 WHERE ID_NOEUD=109295568324271;

Ma table NOEUDS:
---------

ID_NOEUD
ID_ETAT
ID_NOEUD_NDTYPE
ID_ERREURS
ID_LAN
SYSNAME_NOEUD
IP_NOEUD
SYSLOCALISATION_NOEUD
SYSSERVICES_NOEUD
SYSDESC_NOEUD
SYSCONTACT_NOEUD
IFNUMBER_NOEUD
COMMUNITY1_NOEUD
OID_CPU_NOEUD
VERSNMP_NOEUD
...

Ma classe:
----------

import java.sql.*;

public class Db_Write
{

private Driver pilote=null;
private Connection connect=null;
private ResultSet rs=null;
private Statement statm=null;

public Db_Write(){}

public void dbConnect() throws Exception
{
pilote=(Driver)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
connect = DriverManager.getConnection("jdbc:odbc:Nettrafic_db");
}

public boolean updateNoeud1(long idnoeud,String sysname,String syslocalisation,int sysservice,String sysdesc,String syscontact,int ifnumber, String oidcpu,boolean usecpu,String community1,String ip) throws Exception
{
int tmpUseCpu;
if (usecpu==false)
{
tmpUseCpu=0;
}else
{
tmpUseCpu=1;
}
Outil_db cottes;
cottes =new Outil_db();
System.out.println("Dans la requete Update into noeud 1");
String requete ="UPDATE NOEUDS SET ID_ETAT=2,SYSNAME_NOEUD='"+cottes.secuSql(sysname)+"',SYSLOCALISATION_NOEUD='"+cottes.secuSql(syslocalisation)+"',SYSSERVICES_NOEUD="+(sysservice)+",SYSDESC_NOEUD='"+cottes.secuSql(sysdesc)+"',SYSCONTACT_NOEUD='"+cottes.secuSql(syscontact)+"',IFNUMBER_NOEUD="+(ifnumber)+" WHERE ID_NOEUD="+idnoeud+";";
System.out.println("Dans la requete :"+requete);
statm=connect.createStatement();
System.out.println("Dans la requete Update noeud 3");
int intinsetrt=statm.executeUpdate(requete);
System.out.println("Dans la requete Update noeud 4");
System.out.println(requete);
boolean resulta =true;
return(resulta);
}

public void dbClose() throws Exception
{
statm.close();
connect.close();
}

}

Appel de ma classe :
--------------------------

dbWrite=new Db_Write();

dbWrite.dbConnect();

dbWrite.updateNoeud1(noeud.getIdNoeud(),noeud.getSysName(),noeud.getSysLocation(),noeud.getSysService(),noeud.getSysDesc(),noeud.getSysContact(),noeud.getIfNumber(),noeud.getOidCpu(),noeud.getUseCpu(),noeud.getCommunity1Snmp(),noeud.getIpPrincipal());

dbWrite.dbClose();

4 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
20 août 2004 à 15:39
utilise execute au lieu de executeUpdate
je sais plus si c'est ce driver, mais je sais qu'il y en a un qui n'accepte pas cette commande.
0
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006
21 août 2004 à 15:44
Non ca marche pas mieux, ce donne la même chose :-(
0
youess81 Messages postés 40 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 5 juin 2005
23 août 2004 à 12:31
je pênce que c est plutot un probleme de la requete SQL le traitement d'exception que vous faite ne vous aide pas a identifier l'erreur a mon avis faite un try et afficher dans la partie catch l'exception comme vous pouvez savoir plus sur l'erreur
0
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006
23 août 2004 à 13:43
Ok je vais faire ca, mais je suis sûr de la requête SQL, Je l'ai testé dans query analyzer et là pas de problème !
0
Rejoignez-nous