Cherche exemple execution proc stockée java

Fermé
Peguinette Messages postés 176 Date d'inscription vendredi 15 juin 2001 Statut Membre Dernière intervention 17 juillet 2003 - 16 mai 2002 à 09:48
 angelofsoft - 22 mai 2008 à 15:42
Salut,

Peut-on appeler une procedure stockée de la meme maniere qu'une requete sql (j'en doute, mais on sait jamais) ?

Ou doit-on mettre dans le preparecall des '?' ?

Quelqu'un aurait-il un exemple détailler ?

merci.


Peguinette...
"Petit à petit on devient moins petit."
A voir également:

3 réponses

angelofsoft
22 mai 2008 à 15:39
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.CallableStatement;
import java.sql.SQLException;


public class DumpstatsTable {
CallableStatement stmt = null;
Connection conn = null;
public static void main(String arg[]) {
DumpstatsTable dat = new DumpstatsTable();
dat.open();
dat.showTable();
//dat.dropTable();
dat.close();
}
public void open() {
try {
conn = DB.getConnection();
//stmt = conn.createStatement();
} catch(SQLException e) {
System.out.println(e);
}
}
public void showTable() {
try {
stmt = conn.prepareCall("{call get_stats_ivr(?,?)}");
stmt.setString("cDate1","20080501");// Affecte la valeur 1 au paramètre 1
stmt.setString("cDate2","20080501");
ResultSet set = stmt.executeQuery();
while(set.next()) {
String id = set.getString(1);
String datein = set.getString(2);
String timein = set.getString(3);

while(id.length() < 16)

id += " ";
datein += " ";
timein += " ";

System.out.println(id + datein + timein);
}
} catch(SQLException e) {
System.out.println(e);
}
}
public void dropTable() {
try {
int status = stmt.executeUpdate("drop table stats");
System.out.println("Status from dropping table: " + status);
} catch(SQLException e) {
System.out.println(e);
}
}
public void close() {
try {
stmt.close();
} catch(SQLException e) {
System.out.println(e);
}
try {
conn.close();
} catch(SQLException e) {
System.out.println(e);
}
}
}
2
ariock Messages postés 125 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 31 janvier 2005 5
16 mai 2002 à 11:31
Tu peux tres bien appeler une proc stokee de la meme manier qu'une requete mais tout depend quand meme de ton driver JDBC donc c'est a discuter... (le driver JDBC-ODBC ne supporte pas ca a ma connaisance)

Les '?' perso j'aime pas et je prefere construire le chaine requete sur le tas en tappant directe les param dedans moi meme donc je ne peux pas t'aidre pour ca...

Je suis un gaucher contrariant. C'est plus fort que moi,
il faut que j'emmerde les droitiers.
1
Peguinette Messages postés 176 Date d'inscription vendredi 15 juin 2001 Statut Membre Dernière intervention 17 juillet 2003 30
16 mai 2002 à 15:52
J'utilise JDBC 2.0

d'apres ce que tu me dis, on peut faire :
prepareCall("call MAPROC(variable1,variable2)");

mais ca me parait bisard car une procedure stockée est une fonction qui a souvent besoin d'argument et qui a aussi besoin du type des argument. Alors que là, si on peut faire ce qui est écrit au dessus, je ne vois pas comment le jdbc fait pour récuperer le contenu de la variable et le type.

Ce que je voulais savoir c'est si il n'y avait pas moyen d'eviter de faire :
cstmt.setString(0,"essai");
cstmt.setInt(1,156);

pour passer les arguments.

merci par avance,

Peguinette...
"Petit à petit on devient moins petit."
0
angelofsoft
22 mai 2008 à 15:42
cdate1 et cdate2 deux param pro stock
0