Thread: Connect to a PostgreSQL-Server by TCP/IP
Hello I'm new in this List. I would like to connect to a Postgres-Server by a LabView-Client. The problem is, there is NO odbc-driver for LV on Linux and no LV-interface to postgreSQL. So I decided to make my own simple LabView driver. Are there some docs, which describes the basic communication over a tcp connection between the postgres server and a client? I'm interested in 'message architecture' (header, data for login, sql-querys and so on...) and all this stuff. I tried some backward engineering by sniffing the tcp connection, but it is rather anoying. It looks like the messages have some binary headers and they are a problem.... Has anybody an idea? Thanks for your help!!! Regards Ulrich Sniffing the communication between a running perl-script (DBI) and postgres: open tcp connection ..ok client request .......296 bytes (???) Postgres response ....1 byte (4e) client request .......296 bytes (including dbname username in ascii) Postgres response ....5 bytes (52 00 00 00 03) client request .......14 bytes (including password in ascii) Postgres response ....15 bytes (52 00 00 00 00 4b 00 00 78 6f 0c 43 eb 70 5a) client request .......44 bytes (Qbegin ; select getdatabaseencoding(); commit) Postgres response ....79 bytes (CBEGIN Pblank getdatabaseencoding SQL_ASCIICSELECT CCOMMIT) client request .......60 bytes (Qselect pid, name, vorname from mitarbeiter where pid= 'fiu') Postgres response ....96 bytes (Pblank pid name Dvorname fiu Fischer UlrichCSELECT) client request .......1 byte (58) -- Ulrich G. Fischer Dipl. Natw. ETH Center Aerodynamics Ruag Aerospace P.O. Box 301 CH-6032 Emmen Tel. +41 41 268 23 53 Fax. +41 41 268 38 97 ulrich.fischer@aerodynamics.ch www.ruag.com
Fischer Ulrich <ulrich.fischer@aerodynamics.ch> writes: > So I decided to make my own simple LabView driver. Are there some docs, > which describes the basic communication over a tcp connection between > the postgres server and a client? http://www.postgresql.org/docs/8.0/static/protocol.html regards, tom lane
Fischer Ulrich napisal 2005-06-22 17:37: > Hello > > I'm new in this List. > I would like to connect to a Postgres-Server by a LabView-Client. The > problem is, there is NO odbc-driver for LV on Linux and no LV-interface > to postgreSQL. > So I decided to make my own simple LabView driver. Are there some docs, > which describes the basic communication over a tcp connection between > the postgres server and a client? I'm interested in 'message > architecture' (header, data for login, sql-querys and so on...) and all > this stuff. May I ask you, why do you want to make your own direct TCP connection to PostgreSQL? I think, in your case it would be much easier to create some wrapper for libpq or some other frontend library. It needs less work and you don't have to be afraid about tracking internal protocol changes. > I tried some backward engineering by sniffing the tcp connection, but it > is rather anoying. It looks like the messages have some binary headers > and they are a problem.... Maybe source code of common used PostgresSQL frontends like libpq will help you? Regards, Tomasz Myrta
This message was cancelled from within Mozilla.
On Aug 10, 2005, at 6:38 AM, Tomasz Myrta wrote: > Fischer Ulrich napisal 2005-06-22 17:37: > >> Hello >> I'm new in this List. >> I would like to connect to a Postgres-Server by a LabView-Client. >> The problem is, there is NO odbc-driver for LV on Linux and no LV- >> interface to postgreSQL. >> So I decided to make my own simple LabView driver. Are there some >> docs, which describes the basic communication over a tcp >> connection between the postgres server and a client? I'm >> interested in 'message architecture' (header, data for login, sql- >> querys and so on...) and all this stuff. >> > May I ask you, why do you want to make your own direct TCP > connection to PostgreSQL? I think, in your case it would be much > easier to create some wrapper for libpq or some other frontend > library. It needs less work and you don't have to be afraid about > tracking internal protocol changes. > > >> I tried some backward engineering by sniffing the tcp connection, >> but it is rather anoying. It looks like the messages have some >> binary headers and they are a problem.... >> > Maybe source code of common used PostgresSQL frontends like libpq > will help you? PostgreSQL has a very nice and well documented protocol. See http://www.postgresql.org/docs/8.0/static/protocol.html John DeSoi, Ph.D. http://pgedit.com/ Power Tools for PostgreSQL