Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-13 Thread Robert Twitty
ODBTP can be used for the purpose you described.  Although I have not used
it with file-based databases, it should not be a problem.  The  only
requirement is that the ODBC drivers must be thread safe if it will be
accessed by multiple clients.  This, of course, will be the case it it is
used on the web.

As I stated in my previous reply, I have not dealt with  Win32 based PHP,
which is what I assume you are using with IIS.  However, the ODBTP client
library, which was written in C, can be compiled on a Win32 platform with
VC++.  You can then use this library to build CGI programs or COM objects
(that should be fun).  It probably would be less painful to determine what
is needed to compile the ODBTP extension on a Win32 platform.

What is your level of expertise in regards to the above?

-- bob

 The reason for not installing the ODBC drivers on the webserver is that
the
 database referenced by the drivers are simply on-disk files (ie, no socket
 communication involved). We would need to allow SMB traffic through our
 firewall if we were to use the ODBC drivers on the webserver, which is
 something I'm not prepared to do. I don't mind allowing a single, non-MS
TCP
 port through the firewall tho.




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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-05 Thread Maxim Maletsky

Robert Twitty [EMAIL PROTECTED] wrote... :

 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. 

Sounds interesting.

 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.

Have Oracle ran well through it?


 * Supports all data types, including nvarchar, ntext, varchar(255),
 char(255), datetime, and bigint.

What about RECORD type for Oracle? Objects? XMLType(s)? Have you had a
chance to play with them yet?


 I am new to this mailing list, and it appears that PHP is
 predominantly used
 for MySQL and PostgreSQL, and thus I am not sure if ODBTP is of any interest
 to most people on this list.  My original intent was not to release ODBTP to
 the public (I really don't have the time to maintain freeware),  but if
 there is a substantial interest I will release it to the public.  I am
 curious to see how well it performs in other environments.
 
 -- bob


It does, indeed, sounds interesting.
If I understood it right this extension will only run on Win32, right?

--
Maxim Maletsky
[EMAIL PROTECTED]


www.PHPBeginner.com  // PHP for Beginners
www.maxim.cx // my Home

// my Wish List: ( Get me something! )
http://www.amazon.com/exec/obidos/registry/2IXE7SMI5EDI3



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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-05 Thread Robert Twitty
  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.

 Have Oracle ran well through it?

Yes.

  * Supports all data types, including nvarchar, ntext, varchar(255),
  char(255), datetime, and bigint.

 What about RECORD type for Oracle? Objects? XMLType(s)? Have you had a
 chance to play with them yet?

I have not tried those types (I primarilly use it for MS-SQL),  however,
ODBTP can be easily modified to accomadate any type.  The key however is how
to map those types in PHP.  If they are complex then maybe the would have to
be sent as resources or objects.


  I am new to this mailing list, and it appears that PHP is
  predominantly used
  for MySQL and PostgreSQL, and thus I am not sure if ODBTP is of any
interest
  to most people on this list.  My original intent was not to release
ODBTP to
  the public (I really don't have the time to maintain freeware),  but if
  there is a substantial interest I will release it to the public.  I am
  curious to see how well it performs in other environments.
 
  -- bob


 It does, indeed, sounds interesting.
 If I understood it right this extension will only run on Win32, right?

It will work on Win32 and UNIX.

 --
 Maxim Maletsky
 [EMAIL PROTECTED]


 www.PHPBeginner.com  // PHP for Beginners
 www.maxim.cx // my Home

 // my Wish List: ( Get me something! )
 http://www.amazon.com/exec/obidos/registry/2IXE7SMI5EDI3






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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-05 Thread Maxim Maletsky

Robert Twitty [EMAIL PROTECTED] wrote... :

  What about RECORD type for Oracle? Objects? XMLType(s)? Have you had a
  chance to play with them yet?
 
 I have not tried those types (I primarilly use it for MS-SQL),  however,
 ODBTP can be easily modified to accomadate any type.  The key however is how
 to map those types in PHP.  If they are complex then maybe the would have to
 be sent as resources or objects.

Yes, mapping could be a problem. Although, for RECORD it can be done
easier. Objects are harder, though..

I am chewing in my mind this whole thing for a while already.

  It does, indeed, sounds interesting.
  If I understood it right this extension will only run on Win32, right?
 
 It will work on Win32 and UNIX.

Then this is even better than what I thought like.


--
Maxim Maletsky
[EMAIL PROTECTED]


www.PHPBeginner.com  // PHP for Beginners
www.maxim.cx // my Home

// my Wish List: ( Get me something! )
http://www.amazon.com/exec/obidos/registry/2IXE7SMI5EDI3


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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-05 Thread Maxim Maletsky


Wez Furlong [EMAIL PROTECTED] wrote... :

 As for developer interest; most of the big boys are attending a
 conference this week/weekend, so don't be disheartened if you still
 haven't had much response before the next weekend.

Considering the wireless network problems we are having, answering mails
became the challenge :)

--
Maxim Maletsky
[EMAIL PROTECTED]


www.PHPBeginner.com  // PHP for Beginners
www.maxim.cx // my Home

// my Wish List: ( Get me something! )
http://www.amazon.com/exec/obidos/registry/2IXE7SMI5EDI3



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




RE: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-04 Thread Mike Robinson
Robert Twitty writes:

 So far 3 people have shown interest in ODBTP, however, it is 
 the weekend.  I am currently working on packaging it in a 
 tar.gz file.  If the response is low I will only release it 
 to those who have shown an interest, and if it becomes higher 
 than I will release it to the list.  It is very important to 
 me that the people who acquire it actually will use it and 
 provide feedback within a reasonable time period.  I do not 
 want to feel like I put it in  a black hole.

Keep in mind some of the folks are in the throws of a fairly intense
release cycle.

I'd be interested in seeing more about this extension. It sounds
like it could be useful. What kind of license would this stuff
be released under?

Best Regards
Mike Robinson



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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-04 Thread Robert Twitty
 I'd be interested in seeing more about this extension. It sounds
 like it could be useful. What kind of license would this stuff
 be released under?

If it proves to be a viable DB solution, then my goal is to have it become a
part of PHP.  Thus, it would be under the same license as PHP.

 Best Regards
 Mike Robinson






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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-03 Thread Robert Twitty

 gt; * Designed to be as easy as possible to use with
 PHP

 How committed is your organization to supporting your
 selection of PHP?  Have you been involved in any open
 source coding efforts?

My organization's committment to PHP is primarily determined by me.  I am
the software development team leader, and introduced PHP about 9 months ago.
The decision to use PHP for non MySQL / PostgreSQL database applications is
linked to the success of ODBTP.   This is probably the most important reason
why I decided to introduce it to this list.   That fact that it is working
for me is not good enough.  I need to see how well it performs within other
environments.

No, I have never been involved in any open source efforts.   Everything I
have done has been for in-house purposes only.  However, since I do use a
lot of open source software,  I do feel obligated to contribute something.

I primarily write code for the Windows platform, and the only code that I
have written for UNIX is on Solaris.  I t would be nice for someone to
create a configure script, since I have never had a reason to do this.

 I would be interested and likely to assist at some
 level in helping you release this code.  I believe you
 are correct to consider the maintenance issue and
 think it is worth investigating how best to support
 ODBTP.

So far 3 people have shown interest in ODBTP, however, it is the weekend.  I
am currently working on packaging it in a tar.gz file.  If the response is
low I will only release it to those who have shown an interest, and if it
becomes higher than I will release it to the list.  It is very important to
me that the people who acquire it actually will use it and provide feedback
within a reasonable time period.  I do not want to feel like I put it in  a
black hole.

And, yes you are one of the three.

-- bob

 --

 I have been working with PHP on and off for about 3
 years now.  I have been working with Sybase (using the
 ext/sybase_ct) for the most part but would be
 interested in supporting MS SQL and Oracle as much as
 possible.  I will continue to follow the discussion on
 php-dev but thought I would let you know there was
 another interested developer in the meantime.

 Regards,

 Sam Cooley

 __
 Do you Yahoo!?
 HotJobs - Search new jobs daily now
 http://hotjobs.yahoo.com/




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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-03 Thread Wez Furlong
Hi Bob,

I'm interested in this becoming more mainstream, although I personally
dislike mssql; the only current alternative that works in a similar way
is one of the packages that Dan mentioned (I forget which) - it was
difficult to configure as it required quite a large amount of fiddling
around on both unix and win32 sides; the TCO was too high.

If your ODBTP is simple to configure, then I'd consider using it for
those clients that insist on a commercial database (using mysql is
causing a few ripples, even though though they need not worry).
However, I'm currently too busy to try it out, so I'm not a suitable
candidate for testing.

As for developer interest; most of the big boys are attending a
conference this week/weekend, so don't be disheartened if you still
haven't had much response before the next weekend.

To php-dev: I feel that Robert has had a bit of a cool reception;
opensource development relies on positive feedback to make progress.

Robert must be a skilled programmer to have written this package;
don't forget that he has written a php extension, designed a custom
protocol and written the code for unix and windows to make all those
work together, and all of this without any help from us.
(Most people end up asking at least one question here on php-dev
when they write a php extension)

Let's put aside our animosity towards MS and remain objective; it
seems to me that ODBTP could prove to be a really useful library/
extension.

--Wez. 

On 03/11/02, Robert Twitty [EMAIL PROTECTED] wrote:
 So far 3 people have shown interest in ODBTP, however, it is the weekend.  I
 am currently working on packaging it in a tar.gz file.  If the response is
 low I will only release it to those who have shown an interest, and if it
 becomes higher than I will release it to the list.  It is very important to
 me that the people who acquire it actually will use it and provide feedback
 within a reasonable time period.  I do not want to feel like I put it in  a
 black hole.




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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-03 Thread Sander Steffann
Hi,

 To php-dev: I feel that Robert has had a bit of a cool reception;
 opensource development relies on positive feedback to make progress.

Sorry that I'm late :)

I too think this is a very nice extension!!! We (nederland.net, hosting
provider in The Netherlands) don't need this yet, but I expect that in the
future we will have customers asking for something like this... I expect
this extension will be very valueable for a lot of PHP users.

Keep up the good work!
Sander


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




[PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-02 Thread Robert Twitty
Hello

(NOTE: This message was originally posted to PHP-DB, but I was told that
PHP-DEV was a more appropriate place)

I have been using PHP for about 9 months, and have chosen it as my primary
scripting language for web applications.   I have and still use ASP and JSP.
IMHO, PHP is superior and easier to use than those languages except in one
area that is important to me,  which is the ability to access MS SQL Server
7.0 / 2000 databases from a UNIX box.  Out of the box PHP provides great
support for MySQL and PostgreSQL, and at this time I have no desire to use
them because I do not believe that they are ready for  prime time.  The
open source solution that is always recommended for UNIX-based PHP / MS-SQL
connectivity is freeTDS, and unfortunately I found it to be quite lacking in
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.

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.

ODBTP consists of a Windows NT / 2000 service application, an ODBTP client
library that can be used to create  Win32 or UNIX clients,  and a PHP
extension module that was created with the library.   ODBTP has the
following features:

* Multi-client servicing
* True connection pooling (not persistent connections)
* Client reserved connections (virtual connections for stateless web
clients)
* Supports all data types, including nvarchar, ntext, varchar(255),
char(255), datetime, and bigint.
* No big-endian / little-endian problems.
* Server-side data binding.
* Stored procedure execution, parameter passing (including NULL's) and
output retrieval.
* Transactions, i.e., supports commits and rollbacks under any transaction
isolation level.
* UNICODE data is processed using UTF-8 encoding (important since PHP
strings are not UNICODE)
* Can retrieve query results sent in XML format.
* Verbose error reporting, all ODBC error messages are sent to client.
* No discovered memory leaks or buffer overflow possibilities.
* Designed to be as easy as possible to use with PHP

I am new to this mailing list, and it appears that PHP is predominantly used
for MySQL and PostgreSQL, and thus I am not sure if ODBTP is of any interest
to most people on this list.  My original intent was not to release ODBTP to
the public (I really don't have the time to maintain freeware),  but if
there is a substantial interest I will release it to the public.  I am
curious to see how well it performs in other environments.

-- bob

The following is a table, stored procedures and a php script that uses ODBTP
to initialize the table with data.

CREATE TABLE dbo.Employees (
 Id int IDENTITY (1, 1) NOT NULL ,
 ExtId numeric (15,0) NOT NULL ,
 LastName varchar (50) NOT NULL ,
 FirstName varchar (50) NOT NULL ,
 Title varchar (256) NOT NULL ,
 Salary money NOT NULL ,
 JobDesc varchar (3000) NULL ,
 Notes ntext NULL ,
 Active bit NOT NULL ,
 DateEntered datetime NOT NULL ,
 DateModified datetime NOT NULL ,
 CONSTRAINT PKCL_Employees_Id PRIMARY KEY  CLUSTERED (
  Id
 )
)

CREATE PROCEDURE AddEmployee
ExtId numeric(15,0),
LastName varchar(50),
FirstName varchar(50),
Title varchar(256),
Salary money,
JobDesc varchar(3000) = 'Job not defined'
AS
SET NOCOUNT ON

INSERT INTO Employees( ExtId, LastName, FirstName,
   Title, Salary, JobDesc )
   VALUES( ExtId, LastName, FirstName,
   Title, Salary, JobDesc )

IF ERROR  0 RETURN 0
RETURN IDENTITY
GO

CREATE PROCEDURE SetEmployeeNotes
Id int,
Notes ntext
AS
SET NOCOUNT ON

UPDATE Employees SET
  Notes = Notes,
  DateModified = getdate()
WHERE Id = Id
GO

?php

if( !extension_loaded('odbtp') ) dl('odbtp.so');

$con = odbtp_connect( 'odbtpsvr.somewhere.com',
  'DRIVER={SQL
Server};SERVER=sqlsvr.somewhere.com;UID=myuid;PWD=mypwd;DATABASE=OdbtpTest;'
 ) or die;


Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-02 Thread Dan Kalowsky
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.

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.

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.


* 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.

* Stored procedure execution, parameter passing (including NULL's) and
output retrieval.


Nice.I haven't worked on this yet at all for PHP ODBC.


* 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 discovered memory leaks or buffer overflow possibilities.


If you know of any in the current PHP ODBC, let us know.


---
Dan KalowskyI'll walk a thousand miles just
http://www.deadmime.org/~dankto 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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-02 Thread Marcus Boerger
At 18:38 02.11.2002, Robert Twitty wrote:

Hello

(NOTE: This message was originally posted to PHP-DB, but I was told that
PHP-DEV was a more appropriate place)

I have been using PHP for about 9 months, and have chosen it as my primary
scripting language for web applications.   I have and still use ASP and JSP.
IMHO, PHP is superior and easier to use than those languages except in one
area that is important to me,  which is the ability to access MS SQL Server
7.0 / 2000 databases from a UNIX box.  Out of the box PHP provides great
support for MySQL and PostgreSQL, and at this time I have no desire to use
them because I do not believe that they are ready for  prime time.


I do not like MySQL due to its simplicity and lack of relations. But i must
disagree to PHP/Postgres. Postgres IS very stable and fast. Another very 
important
thing is that any security problem found in postgres is fixed very soon. On the
otherhand there is Microsoft and we have seen in the past that there are a 
lot of
problems and that it takes some time to get them fixed by MS. Last but not 
least
i d not like MS products for large server applications for several reasons.

The
open source solution that is always recommended for UNIX-based PHP / MS-SQL
connectivity is freeTDS, and unfortunately I found it to be quite lacking in
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.

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.

ODBTP consists of a Windows NT / 2000 service application, an ODBTP client
library that can be used to create  Win32 or UNIX clients,  and a PHP
extension module that was created with the library.   ODBTP has the
following features:

* Multi-client servicing
* True connection pooling (not persistent connections)
* Client reserved connections (virtual connections for stateless web
clients)
* Supports all data types, including nvarchar, ntext, varchar(255),
char(255), datetime, and bigint.
* No big-endian / little-endian problems.
* Server-side data binding.
* Stored procedure execution, parameter passing (including NULL's) and
output retrieval.
* Transactions, i.e., supports commits and rollbacks under any transaction
isolation level.
* UNICODE data is processed using UTF-8 encoding (important since PHP
strings are not UNICODE)


did you use mbstring and internal encoding set to utf-8 or ucs-whatever?


* Can retrieve query results sent in XML format.
* Verbose error reporting, all ODBC error messages are sent to client.
* No discovered memory leaks or buffer overflow possibilities.
* Designed to be as easy as possible to use with PHP

I am new to this mailing list, and it appears that PHP is predominantly used
for MySQL and PostgreSQL, and thus I am not sure if ODBTP is of any interest
to most people on this list.  My original intent was not to release ODBTP to
the public (I really don't have the time to maintain freeware),  but if
there is a substantial interest I will release it to the public.  I am
curious to see how well it performs in other environments.

-- bob


Sounds interesting to me :-)

There is no problem with adding this as a new extension in pecl since all new
extensions should be created there. Maybe it is even worth to discuss this
belonging to /ext but i doubt. Just ask for approriate CVS account.

However, where can one download ODBTP or will be part of the extension
build?

regards
marcus


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




Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-02 Thread Robert Twitty
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 KalowskyI'll walk a thousand miles just
 http://www.deadmime.org/~dankto slip this skin.
 [EMAIL PROTECTED]- Streets of 

Re: [PHP-DEV] ODBTP, a possible solution for MS-SQL and other databases

2002-11-02 Thread Robert Twitty
 I do not like MySQL due to its simplicity and lack of relations. But i
must
 disagree to PHP/Postgres. Postgres IS very stable and fast. Another very
 important
 thing is that any security problem found in postgres is fixed very soon.
On the
 otherhand there is Microsoft and we have seen in the past that there are a
 lot of
 problems and that it takes some time to get them fixed by MS. Last but not
 least
 i d not like MS products for large server applications for several
reasons.

Unfortunately, the place where I work is not comfortable with using open
source databases,  and SQL Server as been in place for many years and the
GUI makes it easier for many people to administer.  While it may be
unfounded,  the majority of the commercial and government world do not
appear to be receptive to the use of MySQL and PostgreSQL for serious
applications.  And M$ is applying enough political pressure to keep it that
way.  Microsoft is a very big gorilla, and has a reputation for beating
superior products with it's sometimes inferior equivalents.

 * UNICODE data is processed using UTF-8 encoding (important since PHP
 strings are not UNICODE)

 did you use mbstring and internal encoding set to utf-8 or ucs-whatever?

No, unicode data is coverted to and from UTF-8 on the server-side.  The
ODBTP protocol sends and receives all  unicode data in the UTF-8 format.

 Sounds interesting to me :-)

 There is no problem with adding this as a new extension in pecl since all
new
 extensions should be created there. Maybe it is even worth to discuss this
 belonging to /ext but i doubt. Just ask for approriate CVS account.

 However, where can one download ODBTP or will be part of the extension
 build?

I have to generate some documentation on how to install and use it.  I was
only willing to take the time to do this if there was a need for something
like ODBTP by other people.

-- bob

 regards
 marcus


 --
 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