Hi Dan

Below, I have addressed each of your comments.   Keep in mind that ODBTP is
not a replacement for ODBC.  The motivation for ODBTP was to devise a scheme
that would make it easy to keep up with Microsoft's perpetual changes in the
TDS protocol.  Which from my research appears to be  the biggest headache
for FreeTDS and ODBC driver developers.  ODBTP is less susceptible to this
because it is an interface to  ODBC drivers installed on a Windows NT / 2000
server.  And, so far, Microsoft is still providing full support for its ODBC
drivers on Windows Platforms.  Also, if they stop supporting ODBC in the
future, the ODBTP service can be changed to interface with the new
methodology without changing the ODBTP protocol.

> On Saturday, November 2, 2002, at 12:38 PM, Robert Twitty wrote:
> > its capabilities and useless in certain situations.   Another
> > alternative
> > was to use a commercial ODBC driver management system on UNIX.  Sadly,
> > it
> > was not in the budget for this endeavor, and the PHP odbc extensions
> > could
> > use some work in terms of ease of use.
>
> I tend to disagree with this bit.  The ODBC system is no more
> complicated than any of the other database interfaces you find on PHP.
> There is the needed introduction of a odbc.ini file, but thats no more
> confusing than the need for a TNS Names with Oracle.  If you have a
> problem with the way ODBC is implemented, please feel free to request
> new features via the bug system, submit patches, or emailing me
> directly.  I have in the past asked numerous times for input on the
> extension only to receive silence.
>
Upon further review, you are probably correct.  However, working directly
with ODBC can be a daunting task for some people.

> More importantly, what commercial ODBC system are you looking at?
> unixODBC, and iODBC work wonderfully for UNIX, and both are free and
> integrated completely with PHP.
>
The problem with the free versions was that they did not appear to provide
support  SQL Server 7.0 / 2000 new features.  In fact, Microsoft's
DB-Library and early ODBC driver versions do not support all of them either.

> > Because I was determined to use PHP (I really dislike using JSP / JDBC
> > on
> > UNIX, and  IIS / ASP is out of the question), I decided to create my
> > own
> > solution.  Since I have a substantial amount of experience in
> > programming
> > directly with the Win32 ODBC API and TCP/IP,  I decided to create a
> > service
> > that runs on a Win32 platform that can communicate with any platform
> > via
> > TCP/IP.  The service uses a "home grown" protocol that allows a client
> > to
> > access any database that the service can see via the ODBC drivers that
> > are
> > installed on the computer which it resides.  In other words, it allows
> > a PHP
> > client on UNIX to access a database using the ODBC drivers installed
> > on a
> > Windows NT / 2000 server.  It is nothing more than a middle man
> > service for
> > Win32 ODBC.  The name of the service is called ODBTP (Open Database
> > Transport Protocol),  and no there is not a RFC for this protocol.
> > Thus
> > far, I have successfully accessed MS-SQL, Oracle and Sybase databases
> > via
> > ODBTP.
>
> This sounds like a lot of work to re-implement the ODBC system.
>
On the contrary, ODBC was not re-implemented.  ODBTP requires it, but on a
Windows NT / 2000 Server platform.  ODBTP is a client / server wrapper
around the  Win32 ODBC API.

> > * Supports all data types, including nvarchar, ntext, varchar(>255),
> > char(>255), datetime, and bigint.
>
> I'd like to know how you got around this.  It's proven to be a bigger
> headache in supporting for ODBC than I would have imagined.
>
The ODBTP protocol was designed to handle these new data types.  It
retrieves data from Microsoft ODBC drivers that fully support these data
types, and then sends it to the client via the ODBTP protocol which was
designed to accomadate them.  The problem you are probably faced with is
that the UNIX ODBC drivers do not use or have not fully implemented the new
(and supposedly not publically documented) TDS protocol used by SQL Server
7.0 / 2000.

> > * Stored procedure execution, parameter passing (including NULL's) and
> > output retrieval.
>
> Nice.    I haven't worked on this yet at all for PHP ODBC.
>
Again,  the ODBTP protocol  has facilities that make this possible.

> > * UNICODE data is processed using UTF-8 encoding (important since PHP
> > strings are not UNICODE)
>
> This is being worked upon.  Hopefully I'll have free time again soon.
>
No problem,  UTF-8 works quite well in PHP.

> > * No discovered memory leaks or buffer overflow possibilities.
>
> If you know of any in the current PHP ODBC, let us know.
>
This was not meant to be a point of contention with PHP,  but rather with
Win32 based services that tend to suffer more from these problems.

-- bob
>
>  >---------------------------------------------------------------<
> Dan Kalowsky                    "I'll walk a thousand miles just
> http://www.deadmime.org/~dank    to slip this skin."
> [EMAIL PROTECTED]        - "Streets of Philadelphia",
> [EMAIL PROTECTED]                        Bruce Springsteen
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to