Connection vers MS SQL 2000 server (comment faire ?)

coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006 - 19 janv. 2004 à 13:44
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006 - 28 janv. 2004 à 22:46
Bijour a tous,

Voilà j'ai pas le choix, je dois me connecter à une base de donnée se trouvant sur un serveur MS SQL 2000. Je suis débutant en JAVA. Comment dois je m'y prendre !???
Quels objets faut-il que j'utilise sachant que mon code doit être mulit-platforme ?

Merci
Laurent

7 réponses

ioiomatic Messages postés 44 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 9 mars 2004 3
19 janv. 2004 à 17:31
Salut,
de façon générale, tu déclares le driver odbc, puis tu crées une connection dans un try comme suit:

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection connection = DriverManager.getConnection("jdbc:odbc:Nom_de_la_BDD", "user", "password");
}
catch(Exception e){
ton_traitement_en_cas_d_echec_de_connexion
}

N'oublie pas de déclarer avant:
import java.sql.*;

Si tu veux que ton appli soit multi plateforme, il faudra compiler ton code sur les différentes plateformes sur laquelle elle sera utilisée
0
cs_Gaelle Messages postés 41 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 7 mars 2004
20 janv. 2004 à 00:19
[Bonsoir, br br br Je te conseille d utiliser JDBC pour ta connexion et aussi le pilote JDBC et non pas ODBC de microsoft disponible ici br a href= http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist target= _blank http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist /a < Pilote JDBC MSSQL 2000 natif 4> Bonsoir, br br br Je te conseille d utiliser JDBC pour ta connexion et aussi le pilote JDBC et non pas ODBC de microsoft disponible ici br a href= http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist target= _blank http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist /a < Pilote JDBC MSSQL 2000 natif 4> ]

Tu peux trouver pas mal de doc sur JDBC sur le site de sun :
http://java.sun.com

La syntaxe est comme la décrite ioiomatic. Tu trouveras plus de précision sur le site de sun pour les requêtes etc.

Pour être multi-plate forme inutile de recompiler ton code Java si tu n'as pas fait appel à des mécanismes spécifiques à un OS. Java bien programmé est portable à 100%. Donc de ce coté pas de souci !

Gaëlle
0
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006
20 janv. 2004 à 07:58
OK merci pour ces conseils,

L'un d'entre vous aurait-il un exemple fonctionel ? Avec au moins une requete SQL en lecture et une en écriture ?

Coy
0
ioiomatic Messages postés 44 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 9 mars 2004 3
20 janv. 2004 à 18:48
hello ! à priori tu n'as pas pris le temps de jeter un coup d'oeil à de la doc concernant le sujet, mais je vais te donner un exple ;)
après avoir déclarer une connexion à ta base comme décrit dans le message plus haut, supposons une table personnel dans laquelle on a les champs nom et prénom, tu veux récupérer les noms de toutes les personnes et les mettre dans un vecteur déclaré comme suit Vector mesNoms = new Vector() puis les afficher à l'invite systeme:
toujours dans un try:
try{
Statement stt = connection.createStatement();
ResultSet requete = ("select nom from personnel");
while(requete.next()){
mesNoms.add(requete.getString(1));
}
requete.close();
stt.close();
for(int i=0; i < mesNoms.size(); i++){system.out.println(mesNoms.get(i));}

voilà, c'est pas plus compliqué que cela !
Bon courage pour ton apprentissage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ioiomatic Messages postés 44 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 9 mars 2004 3
20 janv. 2004 à 18:58
Heureusement que je me relis, erratum sur le ResultSet:
il faut remplacer ResultSet requete = ("select nom from personnel") par
ResultSet requete ) stt.executeQuery("select nom from personnel").

Maintenant si tu veux écrire dans la base, par exple changer les noms de toutes les personnes qui ont pour nom dupond par dupont. Ca fonctionne avec la syntaxe si dessus:ResultSet requete stt.executeQuery("update personnel set nom 'dupont' where nom = 'dupond'");
ou une autre plus adéquate si tu devais retrouver une erreur:ResultSet requete ) stt.executeUpdate("update personnel set nom 'dupont' where nom 'dupond'");
0
ioiomatic Messages postés 44 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 9 mars 2004 3
20 janv. 2004 à 19:02
décidemment je fatigue. Le catch correspondant au try englobant le traitement SQL est de type SQLException. Exple:
catch(SQLException sqle){System.err.println("erreur dans requete a la base" + sqle.getMessage());}
0
coyote_fx Messages postés 55 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 18 juillet 2006
28 janv. 2004 à 22:46
OK merci ca marche ;-)

mais je suis encore bloqué :-(((

Maintenant j'ai une erreur lorsque j'utilise les méthode last() et absolut(...).

java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
0
Rejoignez-nous