[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-22 Thread Manuel Lemos

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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-22 Thread Richard Ellerbrock

On Sun, 21 Apr 2002 00:54:39 +0200, Manuel Lemos wrote:

> Hello,
> 
> Richard Ellerbrock wrote:
>> > If you want to hear experiences of people that tried Metabase, try
>> > asking in Metabase mailing list (
>> > http://groups.yahoo.com/group/metabase-dev/ ) or BinaryCloud mailing
>> > lists ( http://binarycloud.tigris.org/servlets/ProjectMailingListList
>> > ). I think Alex Black (BinaryCloud project leader) has tried both
>> > MySQL and Oracle with Metabase.
>> 
>> 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
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
land up reading the entire result set even if you do not wish to do so - a
record paging application comes to mind.

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.

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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-20 Thread Manuel Lemos

Hello,

Richard Ellerbrock wrote:
> > If you want to hear experiences of people that tried Metabase, try
> > asking in Metabase mailing list (
> > http://groups.yahoo.com/group/metabase-dev/ ) or BinaryCloud mailing
> > lists ( http://binarycloud.tigris.org/servlets/ProjectMailingListList ).
> > I think Alex Black (BinaryCloud project leader) has tried both MySQL and
> > Oracle with Metabase.
> 
> 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.

Regards,
Manuel Lemos

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




RE: [PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-20 Thread SP

Thanks Richard, just starting out but keeping portability in the back of my
mind.  I've been keeping the sql statements standard and doing everything
through php so I don't get caught when moving to another database.



-Original Message-
From: Richard Ellerbrock [mailto:[EMAIL PROTECTED]]
Sent: April 20, 2002 8:18 AM
To: [EMAIL PROTECTED]
Subject: [PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application


On Thu, 18 Apr 2002 16:05:13 +0200, Manuel Lemos wrote:

> Hello,
>
> Sp wrote:
>>
>> Hi Manuel, I still don't see a problem in others telling their
>> experiences with certain packages.  If someone has just used metabase
>> or has just used adodb then I would like to hear how easy/hard it was
>> to port to another database.
>
> Sure, but what I meant is that since most people only have experienced
> one or the other, you only hear from people that can't compare both.
>
> If you want to hear experiences of people that tried Metabase, try
> asking in Metabase mailing list (
> http://groups.yahoo.com/group/metabase-dev/ ) or BinaryCloud mailing
> lists ( http://binarycloud.tigris.org/servlets/ProjectMailingListList ).
> I think Alex Black (BinaryCloud project leader) has tried both MySQL and
> Oracle with Metabase.

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
when you are used to making use of these standard features of other
databases, it takes a bit of getting used to. Other issues are syntax
issues - you cannot use any funky functions which are unique to your dbf.
Also, you must write very standard SQL - no shortcuts. For example, with
Oracle you MUST specify the table name throughout your query when doing
joins, even if the column is unambiguos.

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



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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-20 Thread Richard Ellerbrock

On Thu, 18 Apr 2002 16:05:13 +0200, Manuel Lemos wrote:

> Hello,
> 
> Sp wrote:
>> 
>> Hi Manuel, I still don't see a problem in others telling their
>> experiences with certain packages.  If someone has just used metabase
>> or has just used adodb then I would like to hear how easy/hard it was
>> to port to another database.
> 
> Sure, but what I meant is that since most people only have experienced
> one or the other, you only hear from people that can't compare both.
> 
> If you want to hear experiences of people that tried Metabase, try
> asking in Metabase mailing list (
> http://groups.yahoo.com/group/metabase-dev/ ) or BinaryCloud mailing
> lists ( http://binarycloud.tigris.org/servlets/ProjectMailingListList ).
> I think Alex Black (BinaryCloud project leader) has tried both MySQL and
> Oracle with Metabase.

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
when you are used to making use of these standard features of other
databases, it takes a bit of getting used to. Other issues are syntax
issues - you cannot use any funky functions which are unique to your dbf.
Also, you must write very standard SQL - no shortcuts. For example, with
Oracle you MUST specify the table name throughout your query when doing
joins, even if the column is unambiguos.

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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-18 Thread Manuel Lemos

Hello,

Sp wrote:
> 
> Hi Manuel, I still don't see a problem in others telling their experiences
> with certain packages.  If someone has just used metabase or has just used
> adodb then I would like to hear how easy/hard it was to port to another
> database.

Sure, but what I meant is that since most people only have experienced
one or the other, you only hear from people that can't compare both.

If you want to hear experiences of people that tried Metabase, try
asking in Metabase mailing list (
http://groups.yahoo.com/group/metabase-dev/ ) or BinaryCloud mailing
lists ( http://binarycloud.tigris.org/servlets/ProjectMailingListList ).
I think Alex Black (BinaryCloud project leader) has tried both MySQL and
Oracle with Metabase.

Regards,
Manuel Lemos



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




[PHP] RE: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-18 Thread SP

Hi Manuel, I still don't see a problem in others telling their experiences
with certain packages.  If someone has just used metabase or has just used
adodb then I would like to hear how easy/hard it was to port to another
database.



-Original Message-
From: Manuel Lemos [mailto:[EMAIL PROTECTED]]
Sent: April 18, 2002 9:37 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]; Sp
Subject: Re: [PHP-DB] Re: [PHP] Re: Cross DB application


Hello,

Sp wrote:
>
> Can someone with database expertise who has used metabase and adodb cut
> through this rhetoric and give an objective view of these two packages.
> From what I got from this convo is that metabase is slower but more
portable
> but adodb is faster but not as portable.

No, Metabase does much more than ADODB. When you do more, eventually
things may take a little longer when you do less. This should be
obvious.

Anyway, if you really care about portability, you're only way out is
Metabase. Other abstraction packages were not meant for portability but
rather for interface makeup.

I think you will be the better judge of that if you try looking at least
at each package documentation. It is pointless to ask to people here
when most of them only know one or the other package.

Regards,
Manuel Lemos

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



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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-18 Thread Manuel Lemos

Hello,

Sp wrote:
> 
> Can someone with database expertise who has used metabase and adodb cut
> through this rhetoric and give an objective view of these two packages.
> From what I got from this convo is that metabase is slower but more portable
> but adodb is faster but not as portable.

No, Metabase does much more than ADODB. When you do more, eventually
things may take a little longer when you do less. This should be
obvious.

Anyway, if you really care about portability, you're only way out is
Metabase. If you are in doubt about the features, think at least about
what you can do with each package to migrate your data when you decide
to switch databases. Metabase is the only package that offer painless
and failure proof method of migrating data using the XML schema support.

With the other package you need to write custom scripts for migration
which is a real pain and prone to error due to eventual bugs of software
that you need to write on your own.

Other abstraction packages were not meant for true portability but
rather for interface makeup.

I think you will be the better judge of that if you try looking at least
at each package documentation. It is pointless to ask to people here
when most of them only know one or the other package.

You may also want to take a look at BinaryCloud which is a well designed
and mature PHP application development framework. It works with Metabase
and will save you countless hours of developing your applications from
scratch.

BinaryCloud
http://binarycloud.tigris.org/

Metabase
http://www.phpclasses.org/metabase

Regards,
Manuel Lemos

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




[PHP] Re: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-18 Thread Manuel Lemos

Hello,

Sp wrote:
> 
> Can someone with database expertise who has used metabase and adodb cut
> through this rhetoric and give an objective view of these two packages.
> From what I got from this convo is that metabase is slower but more portable
> but adodb is faster but not as portable.

No, Metabase does much more than ADODB. When you do more, eventually
things may take a little longer when you do less. This should be
obvious.

Anyway, if you really care about portability, you're only way out is
Metabase. Other abstraction packages were not meant for portability but
rather for interface makeup.

I think you will be the better judge of that if you try looking at least
at each package documentation. It is pointless to ask to people here
when most of them only know one or the other package.

Regards,
Manuel Lemos

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




[PHP] RE: [PHP-DB] Re: [PHP] Re: Cross DB application

2002-04-17 Thread SP

There must be people on this list that have ported their web apps from
different databases and could share their experiences.

mysql <-> postesql
mysql <-> ms sql server
ms sql server <-> oracle



-Original Message-
From: John Lim [mailto:[EMAIL PROTECTED]]
Sent: April 17, 2002 12:38 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: [PHP-DB] Re: [PHP] Re: Cross DB application


Hi Manuel,

"Manuel Lemos" <[EMAIL PROTECTED]> wrote
>
> Most of the popular database abstraction packages support prepared
> queries, except for your PHP ADODb. So, think about this before you keep
> throwing sand to the eyes of the users that do not know better, may be
> you understand the point of catching up on what everybody else is doing
> for a long time.

If you read the ADOdb source, you would know it is untrue. We support
prepared queries, and emulate them if the database does not support it.

> The reason for this is that you had the dumb idea to spam all the lists
> you could remember with the forged claim that ADODB was faster than
> every other database abstraction because your convinient benchmarks
> showed that.

Tomas Cox rewrote PEAR DB after the benchmarks were published to speed
it up. We even worked together to improve bits of PEAR DB. You just moan
about how unfair the benchmarks are.

>
> Since your database abstraction could not beat others on real
> abstraction features you used that to drag users to your package to push
> them the commercial tool that you sell and requires ADODB to run.
>

Visit http://php.weblogs.com/adodb-cool-applications for a long list of
applications using adodb with multiple databases. None of the apps
except the first link use our commercial product, phpLens.

 I think that pretty much refutes your statement.

> That was the lowest Microsoft-like marketing trick - trap them into your
> Windows clone database abstraction "OS" to sell them your tool for which
> you have no competitor because nobody else is doing anything like that
> for your own abstraction later.
>

I interviewed to work at microsoft in 1989, but as a techie, i would have
made microsoft bankrupt if they had let me run their marketing for them :-)

> Of course you may claim ADODB is faster than any other abstraction
> package, but that's because it does not abstract data type conversion to
> make user applications portable.
>

Actually it does, but only for dates, because I find that most other types
can be easily handled because PHP is a very good language. Char and
varchar and numbers map easily to string and float/integer, and so forth.

I have told you this before.

> It is the same as stating that driving a motocycle naked and without
> helmet you will drive faster than clothed with the helmet on. It is not
> the same thing, but unfortunately for the victim users that have fallen
> for your argument they did not notice that your abstraction can only be
> faster by doing less, meaning providing less portability support.
>

Of course. Unneeded portability that is not used by most users
is of no interest to me. You disagree. That is fine. The code is there
for people to read. Let them judge for themselves.

> John, as a marketeer you still have a lot to learn before you realize
> that you can't fool everybody!
>
> Next you will release ADODB XP the one that makes hidden connections to
> your site to track what the users are doing! hehehe :-)
>
> Don't worry, nobody will sue you for the abusing the monopoly of
> applications for your PHP ADO DB! :-)
>
> Manuel Lemos

Manuel, you might not believe me, but what you are saying will make people
shy away from working with you in the future. Treating people with respect
is more
productive. I don't really want to spend my time defending myself when I can
be doing something else.

So I leave this thread to you and to you alone. The floor is yours.
Keep it clean.

John



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



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