Solution: Oracle 8, Delphi 3, Invalid rowid 
Author Message
 Solution: Oracle 8, Delphi 3, Invalid rowid

I have found the solution for the invalid rowid -error I get with
delphi 3, Oracle 8 database, Oracle client software 7.3 and (BDE 4.51
or DBE 5.01).
In Delphi the table object has the property UpdateMode which specifies
how Dlephi is going to build the sql-query, that will be sent to the
database. This property has as defualt value 'upWhereAll', so in the
where-clause of the sql-statement all the fields and the rowid is
submitted.
Other values for this property are 'upWhereKeyOnly' and
'upWhereChanged'. In these case NO rowid is submitted to the server
(check yourself with the SQL monitor), but only the primary key value
(first case) and the primary key value and the changed fields (the
second case). This last case is the most save thing to do with multiple
updates by multiple users.
This solution works fine for table with primary keys.

Liesbeth van Klarenbosch

Sent via Deja.com http://www.*-*-*.com/
Share what you know. Learn what you don't.



Wed, 18 Jun 1902 08:00:00 GMT  
 Solution: Oracle 8, Delphi 3, Invalid rowid
Hello,

Quote:

> I have found the solution for the invalid rowid -error I get with
> Delphi 3, Oracle 8 database, Oracle client software 7.3 and (BDE 4.51
> or DBE 5.01).
> In Delphi the table object has the property UpdateMode which specifies
> how Dlephi is going to build the sql-query, that will be sent to the
> database. This property has as defualt value 'upWhereAll', so in the
> where-clause of the sql-statement all the fields and the rowid is
> submitted.
> Other values for this property are 'upWhereKeyOnly' and
> 'upWhereChanged'. In these case NO rowid is submitted to the server
> (check yourself with the SQL monitor), but only the primary key value
> (first case) and the primary key value and the changed fields (the
> second case). This last case is the most save thing to do with multiple
> updates by multiple users.
> This solution works fine for table with primary keys.

> Liesbeth van Klarenbosch


  I've been searching for a solution to this problem for some time.  You
are the first one to give an actual explaination to the bug.  Thank you.

Still, I'm looking for some more information on this bug, if you know where

it can be found.  Does Borland aware of this bug?  Is it documented
somewhere else?

I'll appriciate any help.

            Joni



Wed, 18 Jun 1902 08:00:00 GMT  
 Solution: Oracle 8, Delphi 3, Invalid rowid
There is another possiblity. If you are using Oracle8 Index-organised
tables, the table is not actually a table but rather a glorified index.
Therefor there is no concept of a row id (you will have to use the primary
key.). In this case, it is not a bug.

There is another problem i have found when connecting to Oracle8 - another
variant on the Invalid RowID problem, this happens to me only when using a
Oracle 7.3.x.x driver on Oracle8. Check that.

Regards,
Shaun Laurens
Cape Town
South Africa


Quote:
> Hello,


> > I have found the solution for the invalid rowid -error I get with
> > Delphi 3, Oracle 8 database, Oracle client software 7.3 and (BDE 4.51
> > or DBE 5.01).
> > In Delphi the table object has the property UpdateMode which specifies
> > how Dlephi is going to build the sql-query, that will be sent to the
> > database. This property has as defualt value 'upWhereAll', so in the
> > where-clause of the sql-statement all the fields and the rowid is
> > submitted.
> > Other values for this property are 'upWhereKeyOnly' and
> > 'upWhereChanged'. In these case NO rowid is submitted to the server
> > (check yourself with the SQL monitor), but only the primary key value
> > (first case) and the primary key value and the changed fields (the
> > second case). This last case is the most save thing to do with multiple
> > updates by multiple users.
> > This solution works fine for table with primary keys.

> > Liesbeth van Klarenbosch

>   I've been searching for a solution to this problem for some time.  You
> are the first one to give an actual explaination to the bug.  Thank you.

> Still, I'm looking for some more information on this bug, if you know
where

> it can be found.  Does Borland aware of this bug?  Is it documented
> somewhere else?

> I'll appriciate any help.

>             Joni



Wed, 18 Jun 1902 08:00:00 GMT  
 Solution: Oracle 8, Delphi 3, Invalid rowid

Well,  I checked it out.

     Your first possibility is not the case.  I've checked the SQL
     monitor, and the problem is simply because the BDE compares the RowID
     using the old 7.3.x.x format.

     Now, I've tried to set the UpateMode property in my TTable to
     upWhereChanged'.  It sloved my problem for every action regarding
     Inserting and Updating, but trying to delete a newly inserted record
     results in an error (the good old "ORA-01410 Invalid RowID").

     The only solution that DID work, was to Refresh my TTable in the
     AfterPost  event handler.

     I am used to use a driver for Oracle 7.3.2.2 in my BDE, but when the
     error started to pop, I changed it to the ORA805.DLL driver.  Should
     I made other changes besides that one?

     And finally, do you know if this error is documanted somewere?

     Thank you,

                   Joni
                   Shoham
                   Israel

Quote:

> There is another possiblity. If you are using Oracle8 Index-organised
> tables, the table is not actually a table but rather a glorified index.
> Therefor there is no concept of a row id (you will have to use the primary
> key.). In this case, it is not a bug.

> There is another problem i have found when connecting to Oracle8 - another
> variant on the Invalid RowID problem, this happens to me only when using a
> Oracle 7.3.x.x driver on Oracle8. Check that.

> Regards,
> Shaun Laurens
> Cape Town
> South Africa



Wed, 18 Jun 1902 08:00:00 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. oracle 8: ORA-01410 invalid rowid

2. Delphi and Oracle 8 rowid problems

3. Delphi 3 (+BDE4.51) and Oracle 8 ROWID problem

4. ORA-01410 invalid ROWID

5. 'Invalid ROWID' With Delphi 5 and Oracle 8.0.5.0.0 Enterprise on NT

6. Advice needed Oracle 8i + Delphi 5.0: Invalid BLOB handle in record buffer

7. Oracle Performance on TTable Solution

8. DbiGetProcs Oracle 7.2 Invalid Floating Point Operation

9. "Invalid number" Oracle error through Delphi 5 + Oracle ODBC Driver

10. Interbase - getting the RowId of a row

11. Delphi and Personal Oracle / Oracle Lite

12. Is Delphi my international internet DB solution

 

 
Powered by phpBB® Forum Software