Hi,
I have following code to insert a row into a table - schema follows:
:
PreparedStatement insertData = targetConnection.prepareStatement("insert
into CompanyParticipationLevel (siteId,nodeId,companyId,editionId,participation
LevelId,participationText,participationLogo) values (?, ?, ?, ?, ?, ?, ?)");
Statement sourceData = sourceConnection.createStatement();
ResultSet sourceResultSet = sourceData.executeQuery("select cpl.siteId,
isnull(cpl.nodeId,0) as nodeId, cpl.companyId, cpl.editionId, cpl.participationL
evelId, cpl.participationText, cpl.participationLogo FROM CompanyParticipationLe
vel cpl where cpl.siteId=8 and cpl.participationLevelTypeId=1");
Object value = null;
while (sourceResultSet.next()) {
insertData.clearParameters();
System.out.print("processing (");
for(int i = 1; i <= 7; i++){
value = sourceResultSet.getObject(i);
insertData.setObject(i, value);
System.out.print("("+value+")");
}
System.out.println(")");
insertData.executeUpdate();
}
+----------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+---------------------+------+-----+---------+-------+
| siteId | int(10) unsigned | | PRI | 0 | |
| nodeId | int(10) unsigned | | PRI | 0 | |
| companyId | int(10) unsigned | | PRI | 0 | |
| editionId | int(10) unsigned | | PRI | 0 | |
| participationLevelId | tinyint(3) unsigned | | PRI | 0 | |
| participationText | text | YES | | NULL | |
| participationLogo | varchar(128) | YES | | NULL | |
+----------------------+---------------------+------+-----+---------+-------+
The output of the program:
processing ((8)(0)(56361)(0)(4)(null)( ))
Exception in thread "main" java.sql.SQLException: Column 'siteId' cannot be null
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2551)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1443)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt
atement.java:1239)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared
Statement.java:903)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1871)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1796)
at com.mysql.jdbc.PreparedStatement.executeUpdate
(PreparedStatement.java:1658)
It is obvious that I did setObject correctly, there are 7 columns and
I have 7 value supplied. But JDBC complains that first column is null.
Is it a bug or someone can tell me what is going on?
Thanks
Haitao
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]