Hi,

First of all, dbTCP is a great job. I like it very much, but I needed a VB6
client. I am accessing a ACU db residing on a SCO Unix Server, but the
licenses are quite expensive, so I have installed a license on a Windows XP
workstation, running dbTCP.

SO I HAVE WRITTEN A VB CLIENT. It was already requested several times on the
forum. It was quite hard to analyse the Delphi code to check the protocol
used, but finaly I did it. I just have sometimes a CMDcode=95 when I request
the fetch fields command. What is this code?

You can share it with the other users or even include it in your
distribution, but without warranty from myself!

The rstWInsock class can even be compiled into a DLL and thus could be used
on a IIS/ASP server, but I do not need it for the moment.

The Client uses a VB class module (rstWinsock) which simulates a ADODB
recordset. The following has been implemented:

- PROPERTY rstWinsock.RemoteHostIP (the remote host IP address)
- PROPERTY rstWinsock.RemoteHostPort (the remote host port)
- PROPERTY rstWinsock.TimeOutSecs (the Timeout in seconds that the class
waits for a server response)
- METHOD rstWinsock.ConnectSocket (establish the connection)
- PROPERTY rstWinsock.State (Connected, Not connected, Error, Timeout)
  if the state = Connected, everything processed ok (check this first)
  if the state = Error, check the ErrCode and ErrDescr for the error
returned
- METHOD rstWinsock.ConnectRemoteDSN (initialize connection to remote DSN)
  check state = Connected to see if everything is OK
- METHOD rstWinsock.ExecuteSQL (launch a SQL statement on the remote DSN)
  if the SQL is a SELECT statement, the class fetches the fields and the
first record
  check state = Connected to see if everything is OK
  if state = connected, 
    - check EOF to see if records are available
    - access all the fields returned with the FIELDS collection
- METHOD rstWinsock.MoveNext (launch a move-to-next record on the remote
DSN)
  check state = Connected to see if everything is OK
  if state = connected, check EOF to see if records are available  

N.B. the class does not use any reference to the winsock component (it uses
the excellent custom class available on www.vbip.com, written by Oleg
Gdalevich, which simulates the Winsock control)

N.B. I only implemented the following field data types from ADO
(N5=adSmallInt, N10=adInteger, N30=adCurrency, C=adVarChar, D=adDate). This
can be changed in the "Sub GetFields" and the "Sub MoveNext".

N.B. The client is based on Server V2, but works also on the previous
version (except that the date format returned from the Server is different
"01/01/2000" vs "2000/01/01")



Best regards,

Peter Czibula