From: Arne Vajhøj on
On 28-06-2010 23:32, gk wrote:
> On 29 June, 03:04, Arne Vajh�j<a...(a)vajhoej.dk> wrote:
>> On 28-06-2010 07:52, gk wrote:
>>> On Jun 28, 4:26 pm, gk<src...(a)gmail.com> wrote:
>>>> On Jun 28, 3:55 pm, RedGrittyBrick<RedGrittyBr...(a)spamweary.invalid>
>>>> wrote:
>>>>> On 28/06/2010 10:41, gk wrote:
>>>>>> please look at the doc for ResultSet
>>>>>> http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html#TYPE_...
>>
>>>>>> TYPE_SCROLL_SENSITIVE
>>>>>> public static final int TYPE_SCROLL_SENSITIVEThe constant indicating
>>>>>> the type for a ResultSet object that is scrollable and generally
>>>>>> sensitive to changes made by others.
>>
>>>>>> What it means by "generally sensitive to changes made by others" ? I
>>>>>> don't get this part.
>>
>>>>> For general questions of this sort, you'll often get an adequate answer
>>>>> by searching using Google or some other search engine:
>>
>>>>> http://en.wikipedia.org/wiki/Cursor_%28databases%29
>>
>>>>> "Scrollable cursors can potentially access the same row in the result
>>>>> set multiple times. Thus, data modifications (insert, update, delete
>>>>> operations) from other transactions could have an impact on the result
>>>>> set. A cursor can be SENSITIVE or INSENSITIVE to such data
>>>>> modifications. A sensitive cursor picks up data modifications impacting
>>>>> the result set of the cursor, and an insensitive cursor does not."
>>
>>>>> Note that this is really an SQL question, more than a Java question.
>>>>> Sometimes you'll get more relevant answers to DBMS-specific SQL
>>>>> questions in an appropriate database newsgroup or forum.
>>>> Thanks . your post was very much helpful.- Hide quoted text -
>>> However , how does it different from attribute CONCUR_UPDATABLE ?
>>
>>> If we use CONCUR_UPDATABLE as a ResultSet attribute that too also
>>> picks up the updated data ...is not it ? why do we need the
>>> SENSITIVE attribute then ?
>>
>> I am far from a JBDB expert but I read the docs as:
>>
>> TYPE_SCROLL_INSENSITIVE - I can scroll forward and backward& I will not
>> see changes done by others
>> TYPE_SCROLL_SENSITIVE - I can scroll forward and backward& I will see
>> changes done by others
>> CONCUR_READ_ONLY - I can not update the result set
>> CONCUR_UPDATABLE - I can update the result set
>>
>> So the difference is between me and other.
>
> What do you mean by update the ResultSet ? we take the results out of
> the ResultSet. we do rs.getString("columnName") to extract the
> result. We don't update ResultSet really.
>
> I don't understand why you are saying updating ResultSet.
>
> do we do that ever ?

The following two methods more or less do the same thing:

private static void update1(Connection con) throws SQLException {
Statement stmt = con.createStatement();
stmt.executeUpdate("UPDATE fun SET txt = 'XX' WHERE id = 2");
stmt.close();
}

private static void update2(Connection con) throws SQLException {
Statement stmt =
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT id,txt FROM fun WHERE
id = 2");
rs.next();
rs.updateString(2, "BB");
rs.updateRow();
rs.close();
stmt.close();
}

No - I don't think the construct is much used in Java & JDBC.

But it is used a lot on ASP & ADO.

Someone must have said "so ein ding mussen wir auch haben".

Arne