Insert Row to ResultSet problem....java.sql.SQLException: No Primary Keys - Mailing list pgsql-jdbc
From | jasonvanbrackel@speakeasy.net (Jason L. van Brackel) |
---|---|
Subject | Insert Row to ResultSet problem....java.sql.SQLException: No Primary Keys |
Date | |
Msg-id | 621ddc9b.0312160724.6c6955db@posting.google.com Whole thread Raw |
Responses |
Re: Insert Row to ResultSet
|
List | pgsql-jdbc |
I'm migrating data from a poorly modeled MS Access 2000 DB to newly developed PosgreSQL 7.4 DB. I'm connecting to the Access database using a jdbc-odbc bridge driver. I'm connectin the postgreSQL DB using the pg74jdbc3.jar driver. public static void main(String[] args) { String[] schools; // Array of SchoolCodes MigrationUtil migr = new MigrationUtil(); // Connect to the Access Database migr.connectToAccess("Access", "C:\\Working\\Access\\Access.mdb"); // Connect to the PostgreSQL Database migr.connectToPostgreSQL("PostgreSQL_Test", "cimTux.cim.internal", "5432"); // Get Schools List System.out.println("Getting List of Schools from access.mdb"); schools = migr.resultSetToStringArray(migr.queryStatement(migr.ODBCConnection, "SELECT ftno FROM tblmst WHERE ftcode ='SC'")); // Start the Main Loop for(int i = 0; i < schools.length; i++) { String currentSchool = schools[i]; // current School Code ResultSet rs = null; // reusable ResultSet variable String sql = null; // reusable SQL Statement String int schoolContactID = 0; // current School ContactID int schoolAddressID = 0; // current School AddressID int eduOrgID = 0; // current EduOrganization ID System.out.println("Current School: " + currentSchool); // Get School information sql = "SELECT FtDes, LenderAddress1, LenderCity, LenderState, LenderZip, " + "LenderAddress2, fsch_code, EINNo FROM tblmst WHERE ftcode = 'SC' AND ftno = '" + currentSchool + "';"; rs = migr.queryStatement(migr.ODBCConnection, sql); // Update school address information System.out.println("Migrating School Address Info"); try{ ResultSet addressInfo = null; // ResultSet for Address Info sql = "SELECT * FROM address;"; addressInfo = migr.queryStatement(migr.postgreSQLConnection, sql); addressInfo.moveToInsertRow(); ..... this is where I get this exception java.sql.SQLException: No Primary Keys at org.postgresql.jdbc2.AbstractJdbc2ResultSet.isUpdateable(AbstractJdbc2ResultSet.java:1363) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.moveToInsertRow(AbstractJdbc2ResultSet.java:697) at com.cimconsultants.EFRMigration.MigrationUtil.main(MigrationUtil.java:62) Here is the queryStatement(Connection, String) Method private ResultSet queryStatement(Connection con, String SQLStatement) { ResultSet rs = null; try { System.out.println("Query: " + SQLStatement); Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); rs = stmt.executeQuery(SQLStatement); }catch(SQLException ex) { System.out.println("Query SQL Exception"); ex.printStackTrace(); System.exit(0); } return rs; } I'm experienced with Java, but very new to JDBC and PostgreSQL. I'm using the JDK 1.4, PostgreSQL 7.4, and the binary pg74jdbc3.jar driver. Thanks in advance, Jason L. van Brackel
pgsql-jdbc by date: