Обсуждение: How to Insert the Row in ResultSet by moveToInsertRow() ... insertRow()?
How to Insert the Row in ResultSet by moveToInsertRow() ... insertRow()?
От
vasylenko@uksatse.org.ua
Дата:
Hello!
|--------------------------------------------------------------------------|
| |
| |
| |
| |
| |
| |
| |
| |
| I've got the Postgre database and table insdide |
| |
| code: |
| |
| |
| |
| |
| CREATE TABLE groups |
| ( |
| id int4 NOT NULL DEFAULT nextval('seq_group_id'::regclass), |
| g_name text NOT NULL, |
| CONSTRAINT i_group PRIMARY KEY (id) |
| ) |
| WITHOUT OIDS; |
| ALTER TABLE groups OWNER TO vasylenko; |
| COMMENT ON TABLE groups IS 'Группы работников (объект, смена |
| ...)'; |
| |
| |
| |
| |
| As You can see: 2 fields |
| id - it's an autofill field. |
| |
| But when I try to insert the new Row in code putting under It |
| generete the SQLException, that "id" filed was not found in |
| ResultSet. But it mustn't be there as for me. |
| I created the id field with default value from the sequence |
| code: |
| |
| |
| |
| CREATE SEQUENCE seq_group_id |
| INCREMENT 1 |
| MINVALUE 1 |
| MAXVALUE 9223372036854775807 |
| START 26 |
| CACHE 1; |
| ALTER TABLE seq_group_id OWNER TO vasylenko; |
| |
| |
| |
| |
| The Code is: |
| code: |
| |
| |
| |
| ResultSet rs; |
| Statement stat = |
| conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CO|
| NCUR_UPDATABLE); |
| rs = stat.executeQuery("Select g_name FROM groups"); |
| try{ |
| rs.moveToInsertRow(); |
| /** |
| ** !!!!!!!The exception generated there !!!!!!!!! |
| */ |
| } |
| catch(SQLException ex){ |
| |
| System.out.print(ex.getMessage()+"\n"); |
| return; |
| } |
| |
| try{ |
| String temp = "New Group"; |
| |
| rs.updateObject(i+1, temp); |
| } |
| |
| catch(SQLException ex) { |
| |
| System.out.print(ex.getMessage()+"\n"); |
| return; |
| } |
| |
| |
| try{ |
| rs.insertRow(); |
| } |
| catch(SQLException ex) |
| { |
| |
| System.out.print(ex.getMessage()+"\n"); |
| |
| } |
| |
| |
| |
| |
| |
| I don't neew to make the ResultSet with both fields... 'cos I use|
| this ResultSet Data in JTable table model. |
| How to solve the problem? |
| Thanks. |
| |
| |
| |
| |
|--------------------------------------------------------------------------|
On 10-Jan-07, at 5:47 AM, vasylenko@uksatse.org.ua wrote:
>
>
> Hello!
> |---------------------------------------------------------------------
> -----|
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> | I've got the Postgre database and table
> insdide |
> |
> |
> |
> code: |
> |
> |
> |
> |
> |
> |
> |
> |
> | CREATE TABLE
> groups |
> |
> ( |
> | id int4 NOT NULL DEFAULT nextval
> ('seq_group_id'::regclass), |
> | g_name text NOT
> NULL, |
> | CONSTRAINT i_group PRIMARY KEY
> (id) |
> | )
> |
> | WITHOUT
> OIDS; |
> | ALTER TABLE groups OWNER TO
> vasylenko; |
> | COMMENT ON TABLE groups IS 'Группы
> работников (объект, смена |
> | ...)';
> |
> |
> |
> |
> |
> |
> |
> |
> |
> | As You can see: 2
> fields |
> | id - it's an autofill
> field. |
> |
> |
> | But when I try to insert the new Row in code putting
> under It |
> | generete the SQLException, that "id" filed was not found
> in |
> | ResultSet. But it mustn't be there as for
> me. |
> | I created the id field with default value from the
> sequence |
> |
> code: |
> |
> |
> |
> |
> |
> |
> | CREATE SEQUENCE
> seq_group_id |
> | INCREMENT
> 1 |
> | MINVALUE
> 1 |
> | MAXVALUE
> 9223372036854775807 |
> | START
> 26 |
> | CACHE
> 1; |
> | ALTER TABLE seq_group_id OWNER TO
> vasylenko; |
> |
> |
> |
> |
> |
> |
> |
> |
> | The Code
> is: |
> |
> code: |
> |
> |
> |
> |
> |
> |
> | ResultSet
> rs; |
> | Statement stat
> = |
> | conn.createStatement
> (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CO|
> |
> NCUR_UPDATABLE); |
You only selected g_name , not id, g_name
Dave
> | rs = stat.executeQuery("Select g_name FROM
> groups"); |
> | try
> { |
> | rs.moveToInsertRow
> (); |
> | /
> ** |
> | ** !!!!!!!The exception generated
> there !!!!!!!!! |
> |
> */ |
> | }
> |
> | catch(SQLException ex)
> { |
> |
> |
> | System.out.print(ex.getMessage()
> +"\n"); |
> |
> return; |
> | }
> |
> |
> |
> | try
> { |
> | String temp = "New
> Group"; |
> |
> |
> | rs.updateObject(i+1,
> temp); |
> | }
> |
> |
> |
> | catch(SQLException ex)
> { |
> |
> |
> | System.out.print(ex.getMessage()
> +"\n"); |
> |
> return; |
> | }
> |
> |
> |
> |
> |
> | try
> { |
> | rs.insertRow
> (); |
> | }
> |
> | catch(SQLException
> ex) |
> |
> { |
> |
> |
> | System.out.print(ex.getMessage()
> +"\n"); |
> |
> |
> | }
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> |
> | I don't neew to make the ResultSet with both fields...
> 'cos I use|
> | this ResultSet Data in JTable table
> model. |
> | How to solve the
> problem? |
> |
> Thanks. |
> |
> |
> |
> |
> |
> |
> |
> |
> |---------------------------------------------------------------------
> -----|
>
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
Re: How to Insert the Row in ResultSet by moveToInsertRow() ... insertRow()?
От
vasylenko@uksatse.org.ua
Дата:
>Re-post:
>Such declaration like this
>
>id int4 NOT NULL DEFAULT nextval('seq_group_id'::regclass)
>and
>CONSTRAINT i_group PRIMARY KEY (id)
>
>give me the oportumity don't bother about unique value of id
>and use another query.
>
>INSERT INTO groups(g_name) VALUES("new group");
>
>I hope to find the same easy way in using ResultSet's objects (), i.e. to
forget about id in my code until it nessesary for me and not for jdbc.
Re: How to Insert the Row in ResultSet by moveToInsertRow() ... insertRow()?
От
vasylenko@uksatse.org.ua
Дата:
Such declaration like this
id int4 NOT NULL DEFAULT nextval('seq_group_id'::regclass)
and
CONSTRAINT i_group PRIMARY KEY (id)
give me the oportumity don't bother about unique value of id
and use another query.
INSERT INTO groups(g_name) VALUES("new group");
I hope to find the same easy way in using ResultSet's objects (), i.e. to
forget about id in my code until it nessesary for me and not for jdbc.