Hints on creating a .NET driver

Daniel Dittmar <[email protected]>
Newsgroups gmane.comp.db.sapdb.general
Organization SAP AG
Message-ID <[email protected]>
A .NET driver could mean two things:
1) 100% C# (or any other language supporting the Common Language 
Runtime), meaning a reimplementation of the network protocol.

2) something that can be called from any .NET language but which could 
be implemented in C/C++.

Of course there are variations possible, just like the SAP DB Java 
driver, where an optional DLL implements shared memory communication, 
which is not accessible from 100% Java.

1) For those willing to take the $5000 offer: writing the JDBC driver 
took me about 1 month. The result was usable, but of course it contained 
many bugs and misunderstandings of the spec. And I knew the network 
protocol quite well.

Don't start with the JDBC driver. The network protocol is partly defined 
through Pascal records (see sys/src/vsp001) and these have no equivalent 
in Java and have been simulated by code like 'get two byte integer at 
offset x'. Start with the documents in 
http://sapdb.2scale.net/moin.cgi/NetworkProtocol. Write example programs 
for an existing interface (possibly the .NET ODBC bridge) and look at 
the vtrace.

2) There exists now a C++ API that will form the basis of future 
implementations of the Precompiler, ODBC and possibly a less portable, 
but faster JDBC driver. The sources are in 
sys/src/SAPDB/Interfaces/Runtime and sys/src/SAPDB/Interfaces/SQLDBC, 
documented by doxygen comments (sys/config/interfaces/doxygen).

Daniel Dittmar

-- 
Daniel Dittmar
SAP DB, SAP Labs Berlin
[email protected]
http://www.sapdb.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.