Home Page for the TeradataForum

Archives of the TeradataForum

Message Posted: Tue, 01 Mar 2005 @ 19:50:46 GMT

  <Prev Next>   <<First <Prev Next> Last>>  

Subj:   Re: CLI with Microsoft .NET
From:   Matthew Winter


I have written a .NET wrapper of the CLI API.

However it is not wrapping DBCPrims.dll, but rather WinCLI32.dll.

The wrapper is very low level, and therefore you have to actually parse the data parcels being returned, which again I have written several methods for. I have also written a very simplistic Query object that performs a similar task to DBCPrims.dll. All of which is done in 100% C# rather than VB.NET.

However, if you want ADO.NET for Teradata, then take a look at the Atanasoft driver.

Depends really what you want to do, and how proprietary you want the code. At least with using ADO.NET, the same code could be easily made database agnostic, but using the low level wrapper will give you greater performance. I did several very simple performance tests against the Atanasoft driver, and the low level wrapper achieved on average 10% better performance, and greater when large volumes of data were involved. The reason for this, isthe ADO.NET overhead, i.e. converting CLI into the ADO.NET standard.

I would like to release the CLI API as open source (LGPL, so it could be used commercially), however I believe I would need to have written Teradata approval, as it uses a lot of information gained from the WinCLI Developers Kit, which has a commercial license. Maybe someone from NCR on this list could advise.

I did actually work on an API that bypasses the WinCLI32.dll completely, much like a Type 4 JDBC driver does. I got the logon, query execution working, but then ran out of time. This API was even more performant than the wrapper API, which is not much of a suprise, as when I profiled the wrapper API, I found that the bottleneck was the WinCLI32.dll, or at least the marshalling that is required. However since Teradata has introduced encryption of data, and several other new features, it has fallen behind. A 100% .NET managed driver would always perform better than one which has to interface with unmanaged code.


Matthew Winter

  <Prev Next>   <<First <Prev Next> Last>>  
  Top Home Privacy Feedback  
Copyright for the TeradataForum (TDATA-L), Manta BlueSky    
Copyright 2016 - All Rights Reserved    
Last Modified: 15 Jun 2023