Hello,

Richard Ellerbrock wrote:
> >> I have done MySQL (MyISAM, INNODB), PostgreSQL and Oracle 9i with AdoDB
> >> - see http://iptrack.sourceforge.net. Works just fine for me. The
> >> hardest part was to get around limitations of certain databases - like
> >> Oracle does no support record count. This is not impossible to get
> >> around, but
> >
> > If you would have used Metabase you would not have that problem because
> > Metabase has a function that you may call any time after you execute a
> > select query that returns the number of rows contained in the result
> > set. That is a standard feature of Metabase that works with every
> > database including Oracle.
> 
> Please take a moment to also discuss the limitations in between the
> marketing hype - this "feature" is also not unique to your class. The

There is absolutely no commercial interests behind Metabase. So there is
no marketing statement and even less hype. Metabase does exactly what is
described because I needed it to do that for my own applications,
especially in the beginning 3 years ago because I wanted to provide
smooth transition between MySQL applications that rely on these features
and databases like Oracle for which these features can be emulated.


> Oracle driver does not support native record count (as do many other
> drivers, I forget which ones), so this needs to be emulated. The only way
> is to read in the entire result set and emulate record count. This fails
> for large result sets - please tell me how you intend doing this with a
> couple of million records? This method is also not optimal as you always

Please tell me when in a Web application you need to read a whole result
set with million rows?


> land up reading the entire result set even if you do not wish to do so - a
> record paging application comes to mind.

If you want to just to read a range of rows of a whole an arbitrary
sized result set, you can use a feature of Metabase that with a single
call made before executing any SELECT query it tells to restrict to a
specified range of rows. It is like MySQL LIMIT except that it works
with all supported databases, including Oracle.

You know, Metabase was specifically though to address Web development
needs. If you look around in other platforms you see that Metabase
provides features that are not provided anywhere else, not even for
Java. Think for instance about sequences...


 
> The only logical way is to do a select count(*) from table where ..., but
> this is not transaction safe. Other alternatives would be to modify your
> code not to depend on record count at all - this is what I did.

Yes, that is the recommended way to do it. That is extensively
recommended in Metabase manual and tutorial.

Still Metabase provides that feature because the large majority of PHP
users comes from a low end database background like MySQL.

Regards,
Manuel Lemos

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to