FYI - How to access SAP DB from a Microsoft .NET environment
Carsten Kuckuk <[email protected]> Sun, 31 Aug 2003 18:51:28 +0200
| Newsgroups | gmane.comp.db.sapdb.general |
|---|---|
| Message-ID | <[email protected]> |
Fellow list members,
A few weeks ago, the subject of accessing SAP DB from .NET came up. I
spent some hours this weekend familiarizing myself with the relevant
parts of .NET and the ODBC bridge and wrote up what you have to do in
order to achieve this in an ADO.NET conform way. There were no problems
involved except for having to spent hours with installing frameworks,
SDKs, patches, and reading through reams of documentation in MS-speak.
HTH,
Carsten
======================================
http://www.kuckuk.com/public/tn/tn0016.html
How to access SAP DB from a Microsoft .NET environment
This technical note describes how to access a SAP DB database from a
.NET program
Installed Software
I started with a clean installation of Windows 2000 Workstation. Then I
used the built-in „Windows Update“ to install all available service
packs and patches. As for the .NET environment, I installed the 1.0
version (service pack 2) as well as the 1.1 version of the .NET
framework. On top of that I installed „ODBC .NET Data Provider“ which
according to the online documentation is part of the 1.1 framework, but
needs to be installed separately for the 1.0 framework. In order to make
this ODBC bridge happy, I also had to install MDAC 2.6 service pack 2.
For the database, I installed SAP DB 7.4.03.27 which I downloaded
straight from the SAP DB web site. I installed the „all“ package which
includes the server, the clients, and some command line utilities. I ran
the „create_demo_db“ script and thusly created the TST database. I also
installed DBM GUI and the SQL Studio. I used the system configuration
tools to create an ODBC data source called „TST“ which connects via the
SAP DB ODBC driver to the TST database on server „localhost“.
.NET Framework 1.0
As a .NET client, I used the application „ADO.NET Ad Hoc Query Tool“
which comes on the acompanying CD to David Sceppa's book „Microsoft
ADO.NET. Core Reference“ from Microsoft Press. When I first started this
tool, I had to select „<Add Provider>“ as the .NET Data Provider. I was
presented with a dialog box where I had to manually select the driver
DLL. I chose
c:\Programme\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.Dll“. After the
ODBC driver was registered, I typed in „DSN=TST;UID=TEST;PWD=TEST“ as
the connection string and got a connection. As my first query I chose
„select * from dual“, pressed the „execute“-button and got the result I
was looking for.
.NET Framework 1.1
With the release of .NET 1.1, the ODBC data provider got moved into the
System.Data.Odbc Namespace and became part of the core framework. The
following C# application shows how to access the SAP DB demo database:
// hello.cs (.NET framework 1.1)
using System;
using System.Data;
using System.Data.Odbc; // FW 1.0: Microsoft.Data.Odbc;
class hello
{
static void Main(string[] args)
{
string strConn = "DSN=TST;UID=TEST;PWD=TEST";
IDbConnection conn = new OdbcConnection(strConn);
conn.Open();
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT owner,tablename,type,tabletype FROM tables";
IDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
int n=reader.FieldCount;
for(int i=0; i<n; i++)
Console.Write(reader.GetString(i)+" ");
Console.WriteLine("");
}
}
finally
{
reader.Close();
conn.Close();
}
}
}
This code gets compiled from the command line with the following commands:
C:\home\ck>set
path=c:\programme\microsoft.net\sdk\v1.1\bin\;c:\winnt\microsoft.
net\framework\v1.1.4322\;c:\programme\microsoft visual studio .net
2003\vc7\bin\
;c:\programme\microsoft visual studio .net
2003\common7\ide\;c:\winnt\system32\;
c:\winnt;c:\winnt\system32\whem
C:\home\ck>set LIB=c:\programme\microsoft visual studio .net
2003\vc7\lib\;c:\pr
ogramme\microsoft.net\sdk\v1.1\lib\;
C:\home\ck>set INCLUDE=c:\programme\microsoft visual studio .net
2003\vc7\includ
e\;c:\programme\microsoft.net\sdk\v1.1\include\;
C:\home\ck>csc hello
Microsoft (R) Visual C# .NET-Compilerversion 7.10.3052.4
für Microsoft (R) .NET Framework, Version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. Alle Rechte vorbehalten.
error CS2001: Die Quelldatei 'hello' konnte nicht gefunden werden
fatal error CS2008: Kein Eingaben wurden angegeben
C:\home\ck>csc hello.cs
Microsoft (R) Visual C# .NET-Compilerversion 7.10.3052.4
für Microsoft (R) .NET Framework, Version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. Alle Rechte vorbehalten.
C:\home\ck>