Bonjour voici mon programme et mon résultat :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package javajdbc1;
 
 
import java.sql.*;
 
public class Main {
 
  public static String formatResultSet(ResultSet rs)
    {
      try
      {
        ResultSetMetaData rsmd = rs.getMetaData();
        int numberOfColumns = rsmd.getColumnCount();
        StringBuffer ret = new StringBuffer(500);
 
        for (int i = 1; i <= numberOfColumns; i++)
        {
          String columnName = rsmd.getColumnName(i);
          ret.append(columnName + "," );
        }
        ret.append("\n");
        while (rs.next())
        {
          for (int i = 1; i <= numberOfColumns; i++)
            ret.append(rs.getString(i) + "," );
          ret.append("\n");
        }
        return(ret.toString());
      }
      catch(Exception e)
      {
        return e.toString();
      }
    }
 
    public static void main(String args[])
    {
 
      String DRIVER =   "sun.jdbc.odbc.JdbcOdbcDriver";
      String URL    =   "jdbc:odbc:salarie";
 
      boolean s_open=false, c_open=false;
      Statement stmt = null;
      Connection con = null;
      String conString = null;
 
      try
      {
 
        Class.forName(DRIVER);
        con = DriverManager.getConnection(URL , "", "");
        c_open = true;
 
        stmt = con.createStatement();
        s_open = true;
 
        String strSQL="create table paie  " +
        "(NoSal integer , mois integer , SalaireMens integer , primary key (Nosal,mois) )";
 
        System.out.println("\n>> CREATION TABLE Paie : "+strSQL );
        stmt.executeUpdate(strSQL);
 
        System.out.println("\n>> "+"Insertion de 6 paie pour janvier et fevrier ");
 
        stmt.executeUpdate("insert into paie values(1,1,100)");
        stmt.executeUpdate("insert into paie values(1,2,150)");
        stmt.executeUpdate("insert into paie values(2,1,150)");
        stmt.executeUpdate("insert into paie values(2,2,200)");
        stmt.executeUpdate("insert into paie values(3,1,100)");
        stmt.executeUpdate("insert into paie values(3,2,200)");
 
 
        System.out.println("\n>> "+"Liste des Paies cumulées ");
        ResultSet rs = stmt.executeQuery("select Nom, sum(salaireMens) as SalaireTotal  from Paie p,Salarie s where s.Nosal=p.nosal  group by Nom");
 
        System.out.println(formatResultSet(rs));
 
        System.out.println("\n>> "+"SUPPRESSION table Paie");
        stmt.executeUpdate("drop table paie");
      }
      catch(Exception e)
      {
        System.out.println(e);
        System.out.println("\nProbleme Acces JDBC ODBC\n");
      }
 
      try
      {
        if(s_open)
          stmt.close();
      }
      catch(Exception e2)
      {
        System.out.println(e2.toString());
      }
 
      try
      {
        if(c_open)
          con.close();
      }
      catch(Exception e3)
      {
        System.out.println(e3.toString());
      }
    }
 
}

run:

>> CREATION TABLE Paie : create table paie (NoSal integer , mois integer , SalaireMens integer , primary key (Nosal,mois) )

>> Insertion de 6 paie pour janvier et fevrier

>> Liste des Paies cumulées
java.sql.SQLException: ERREUR: la relation

Probleme Acces JDBC ODBC



Je comprend pas pourquoi ça marche pas ce code marche sous sql serveur sur une autre machine (j'ai pas sql serveur chez moi).

question subsidiaire : es-ce qu'il y a, à l'installation de postgreSQL, une passerelle JDBC ODBC qui s'installe en même temps?

Merci