Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 04/04/2011 15:37:59
- meles
- Membre
JDBC et WITH ... SELECT
Bonjour,
dans une application java (Eclipse BIRT) utilisant jdbc pour attaquer ma bdd (postgresql 9.0.2), je n'arrive pas a écrire une requete de la forme
with temp as (select col1, col2 from plop) select * from temp
alors que la forme
select * from (select col1, col2 from plop) as temp
passe sans problème.
J'obtiens l'erreur suivante :
Caused by: org.postgresql.util.PSQLException: ERREUR: erreur de syntaxe sur ou près de « select »
Est-ce un pb connu avec JDBC ?
Je suis un peu perdu.
Cordialement
Hors ligne
#2 04/04/2011 15:45:37
- Marc Cousin
- Membre
Re : JDBC et WITH ... SELECT
Étrange. Aucune idée de si le driver JDBC essaye d'analyser la requête. Par défaut, les requêtes ayant des erreurs de syntaxe sont tracées dans la log de PostgreSQL. Est-ce que celle-ci apparaît ?
Marc.
Hors ligne
#3 04/04/2011 16:04:17
- meles
- Membre
Re : JDBC et WITH ... SELECT
Le temps de trouver ou c'est loggué sous windows vista !
Hors ligne
#4 04/04/2011 16:11:07
- Marc Cousin
- Membre
Re : JDBC et WITH ... SELECT
Dans le répertoire où est installé Postgres (ou l'instance, si vous avez choisi un répertoire différent pour elle au moment de l'installation). Il y a un sous-répertoire pg_log, avec des noms de fichiers relatifs à la date de démarrage de l'instance.
Marc.
Hors ligne
#5 04/04/2011 16:30:31
- meles
- Membre
Re : JDBC et WITH ... SELECT
Merci Marc,
grâce a toi, j'ai pu constater que le problème ne venais pas du WITH !
Tout marche impec.
Hors ligne
#6 12/01/2016 00:25:43
- VERONIQUE
- Membre
Re : JDBC et WITH ... SELECT
Bonsoir,
J'espère que je suis sur le bon forum, c'est la première fois que je viens sur ce forum.
Je n'arrive pas à trouver l'erreur dans ce programme qui me m'est: Attention Driver not found , svp pouvez m'aider ?
J'aie donc pris comme Base de donnée progreSQL.
public class FDirection extends JFrame {
public static JTextField txtNom = new JTextField ();
JPasswordField passField = new JPasswordField();
Choice chcCat = new Choice ();
private static String url = "jdbc:postgresql://locahost:5432/Ecole";
private static String user = "postgres";
private static String password = "xxxxx";
String strNom = "" ;
String strPassword;
String strCategorie;
int NombreEnregistrement = 0;
static Statement staQuery;
static ResultSet rstDirect;
static Connection conDB;
public static FDirection dir;
public static FBienvenue bie;
public FDirection () {
init ();
}
public static void main(String[] args) {
dir = new FDirection ();
}
public void init () {
this.setSize(400, 300);
this.setTitle("LA DIRECTION");
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width / 2 - this.getWidth() / 2, dim.height / 2 - this.getHeight() / 2);
JLabel jlNom = new JLabel ("Nom");
JLabel jlPassword = new JLabel ("Password");
JLabel jlCat = new JLabel ("Catégories");
Choice chcCat = new Choice ();
JTextField txtNom = new JTextField ();
//JTextField txtPassword = new JTextField () ;
JButton cmdOK = new JButton ("OK");
JButton cmdAnnuler = new JButton ("Annuler");
JButton cmdQuitter = new JButton ("Quitter");
this.getContentPane().setLayout(null);
jlNom.setBounds(50, 50, 100, 50);
jlPassword.setBounds(50, 100, 100, 50);
jlCat.setBounds(50, 150, 100, 50);
this.getContentPane().add(jlNom);
this.getContentPane().add(jlPassword);
this.getContentPane().add(jlCat);
chcCat.setBounds(150, 150, 100, 50);
this.getContentPane().add(chcCat);
chcCat.addItem("Direction");
chcCat.addItem("Secrétaires");
txtNom.setBounds(150, 50, 100, 20);
this.getContentPane().add(txtNom);
passField.setBounds(150, 100, 100, 20);
this.getContentPane().add(passField);
cmdOK.setBounds(30, 220, 100, 20);
this.getContentPane().add(cmdOK);
cmdAnnuler.setBounds(150, 220, 100, 20);
this.getContentPane().add(cmdAnnuler);
cmdQuitter.setBounds(270, 220, 100, 20);
this.getContentPane().add(cmdQuitter);
this.setVisible(true);
try {
Class.forName("org.postgresql.Driver");
}
catch (ClassNotFoundException cnfe){
System.out.println("Driver not found");
}
try {
conDB = DriverManager.getConnection(url + user + password );// Connexion à la DB
//Création d'un objet
staQuery = conDB.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rstDirect = staQuery.executeQuery("SELECT FROM * categories");
while (rstDirect.next());
chcCat.addItem(rstDirect.getString(1));
rstDirect.close();
}
catch (SQLException sql) {
System.out.println("Attention DRIVER not found");
}
cmdOK.addActionListener(new ActionListener () {
public void actionPerformed (ActionEvent e){
try {
strNom = txtNom.getText(); // Voir si ca existe ds le TextField
char cha[] = passField.getPassword();
strPassword = new String (cha);
strCategorie = chcCat.getSelectedItem();
conDB = DriverManager.getConnection(url + user + password );// Connexion à la DB
staQuery = conDB.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rstDirect = staQuery.executeQuery("SELECT * FROM employes WHERE em_nom = '"+strNom+ "'");
rstDirect.next();
NombreEnregistrement = rstDirect.getRow();
}
catch (SQLException sql) {
}
try {
if (strNom.equals("")) {
JOptionPane.showMessageDialog(FDirection.this, "Attention il faut mettre un nom ! ", "OK", JOptionPane.OK_CANCEL_OPTION);
}
else if (NombreEnregistrement == 1) {
if (strPassword.equals(rstDirect.getString("em_password")) && (strCategorie.equals(rstDirect.getString("em_categorie")))){
}
else {
JOptionPane.showMessageDialog(FDirection.this, "Attention, le nom du password ou la catégorie est faux ! ", "OK", JOptionPane.OK_CANCEL_OPTION);
txtNom.setText("");
passField.setText("");
}
}
}
catch (SQLException sql) {}
}
});
}
}
Hors ligne
#7 12/01/2016 00:48:43
- rjuju
- Administrateur
Re : JDBC et WITH ... SELECT
Soit vous n'avez pas installé le driver jdbc, soit il n'est pas présent dans le class path. cf : https://jdbc.postgresql.org/documentati … spath.html
Julien.
https://rjuju.github.io/
Hors ligne
#8 12/01/2016 01:12:09
- VERONIQUE
- Membre
Re : JDBC et WITH ... SELECT
Merci, ca va aussi si j'aie ajouté le fichier jar dans librairie
Dernière modification par VERONIQUE (12/01/2016 01:13:34)
Hors ligne
Pages : 1