[Mono-list] ODBC.NET Provider on Windows

Daniel Morgan danmorg@sc.rr.com
Fri, 11 Oct 2002 22:53:16 -0400


Brian,

It works on Windows too!!!!

I compiled and ran the OdbcTest on .NET 1.1 beta on Windows and on Mono on
Windows.  It works on both.  I had to use a DSN and change something in my
DSN in ODBC Sources in the Control Panel.
However, I made the authentication set to SQL Server (not NT) and set my
default database to pubs.

			dbcon.ConnectionString =
				"DSN=LocalServer;UID=sa;PWD=";

DanielMorgan@DANPC ~/mono/mcs/class/System.Data/Test
$ mcs OdbcTest.cs -r System.Data.dll
Compilation succeeded

DanielMorgan@DANPC ~/mono/mcs/class/System.Data/Test
$ mono OdbcTest.exe
ODBCInit Complete.
WARNING: Unknown type 0
Last Name: Cruz



Last Name: Roulet



Last Name: Devon



Last Name: Domingues



Last Name: Hernadez



Last Name: Schmitt



Last Name: Tonini



Last Name: Roel



Last Name: Lincoln



Last Name: Chang



Last Name: Thomas



Last Name: Bennett



Last Name: Nagy



Last Name: Snyder



Last Name: Labrune



Last Name: Josephs



Last Name: Jablonski



Last Name: Brown



Last Name: Lebihan



Last Name: Larsson



Last Name: Pereira



Last Name: Rance



Last Name: Paolino



Last Name: Smith



Last Name: Sommer



Last Name: Karttunen



Last Name: Pontes



Last Name: Saveley



Last Name: McKenna



Last Name: Ibsen



Last Name: Franken



Last Name: Accorti



Last Name: Koskitalo



Last Name: Afonso



Last Name: Parente



Last Name: Cramer



Last Name: Henriot



Last Name: Mendel



Last Name: Muller



Last Name: Ottlieb



Last Name: O'Rourke



Last Name: Ashworth



Last Name: Latimer




Unhandled Exception: System.NotImplementedException: The requested feature
is no
t yet implemented
in <0x0002b> 00 System.Data.Odbc.OdbcCommand:Dispose (bool)
in <0x00015> 00 System.ComponentModel.Component:Dispose ()
in <0x00174> 00 Test.OdbcTest.OdbcTest:Main (string[])


-----Original Message-----
From: mono-list-admin@ximian.com [mailto:mono-list-admin@ximian.com]On
Behalf Of Daniel Morgan
Sent: Friday, October 11, 2002 11:18 AM
To: Brian Ritchie; Mono-List
Subject: RE: [Mono-list] ODBC.NET Provider on Windows


Yes, it got me further, I still have a problem.  However, I think you said
System.Data.Odbc does not have support for DSN-less connections yet.

This is what I get now:

DanielMorgan@DANPC ~/mono/mcs/class/System.Data/Test
$ mono OdbcTest.exe
ODBCInit Complete.
ERROR: SQLConnect: <Error>
ERROR: SQLAlloc(Prepare): <Error>
ERROR: SQLPrepare: <InvalidHandle>
ERROR: SQLExecute: <InvalidHandle>
ERROR: SQLCancel: <InvalidHandle>

Unhandled Exception: System.NotImplementedException: The requested feature
is no
t yet implemented
in <0x0002b> 00 System.Data.Odbc.OdbcCommand:Dispose (bool)
in <0x00015> 00 System.ComponentModel.Component:Dispose ()
in <0x00174> 00 Test.OdbcTest.OdbcTest:Main (string[])


-----Original Message-----
From: Brian Ritchie [mailto:brianlritchie@hotmail.com]
Sent: Friday, October 11, 2002 10:28 AM
To: Daniel Morgan; Mono-List
Subject: Re: [Mono-list] ODBC.NET Provider on Windows


Here's the fix...

In libodbc.cs, the OdbcReturn enum needs to be a short.

internal enum OdbcReturn : short {
Error = -1,

InvalidHandle = -2,

StillExecuting = 2,

NeedData = 99,

Success = 0,

SuccessWithInfo = 1

}

Let me know if this works for you,

Brian

----- Original Message -----
From: "Brian Ritchie" <brianlritchie@hotmail.com>
To: "Daniel Morgan" <danmorg@sc.rr.com>; "Mono-List" <mono-list@ximian.com>
Sent: Friday, October 11, 2002 9:17 AM
Subject: Re: [Mono-list] ODBC.NET Provider on Windows


> Guys,
>
> I'm able to duplicate the problem.  The very first call into odbc32 is
> failing.  It is a pretty basic call...it only allocates the first handle.
> So, it appears to be some sort of interop problem with the dll.  I'm still
> checking into it.  Let me know if you have any thoughts.
>
> Brian
>
> ----- Original Message -----
> From: "Daniel Morgan" <danmorg@sc.rr.com>
> To: "Mono-List" <mono-list@ximian.com>
> Sent: Friday, October 11, 2002 3:49 AM
> Subject: [Mono-list] ODBC.NET Provider on Windows
>
>
> > Rodrigo and Brian
> >
> > I have tried to get the Odbc.net provider to use Microsoft Window's
native
> > ODBC library which is odbc32.dll by changing the DllImport from
"libodbc"
> to
> > "odbc32".  The library apparently loads,
> > but I don't know what the errors are for.
> >
> > Any ideas?
> >
> > This is the results I got:
> >
> > DanielMorgan@DANPC ~/mono/mcs/class/System.Data/Test
> > $ mono OdbcTest.exe
> > ERROR: SQLAllocHandle: <528285696>
> > ERROR: SQLSetEnvAttr: <528285696>
> > ODBCInit Complete.
> > ERROR: SQLAllocHandle(hdbc): <528285696>
> > ERROR: SQLConnect: <65535>
> > ERROR: SQLAlloc(Prepare): <528351231>
> > ERROR: SQLPrepare: <528351230>
> > ERROR: SQLExecute: <528351230>
> > ERROR: SQLCancel: <528351230>
> >
> > Unhandled Exception: System.NotImplementedException: The requested
feature
> > is no
> > t yet implemented
> > in <0x0002b> 00 System.Data.Odbc.OdbcCommand:Dispose (bool)
> > in <0x00015> 00 System.ComponentModel.Component:Dispose ()
> > in <0x00174> 00 Test.OdbcTest.OdbcTest:Main (string[])
> >
> > I have a ODBC.net test named OdbcTest.cs that works on Windows XP
> > using .NET 1.1 Beta, but not Mono:
> >
> > using System;
> > using System.Data;
> > using System.Data.Odbc;
> >
> > namespace Test.OdbcTest
> > {
> > class OdbcTest
> > {
> > [STAThread]
> > static void Main(string[] args)
> > {
> > OdbcConnection dbcon = new OdbcConnection();
> > // connection string to a Microsoft SQL Server 2000 database
> > dbcon.ConnectionString =
> > "DRIVER={SQL Server};" +
> > "SERVER=(local);" +
> > "Trusted_connection=true;" +
> > "DATABASE=pubs;";
> >
> > dbcon.Open();
> >
> > OdbcCommand dbcmd = new OdbcCommand();
> > dbcmd.Connection = dbcon;
> > dbcmd.CommandType = CommandType.Text;
> > dbcmd.CommandText = "SELECT lname FROM employee";
> >
> > OdbcDataReader reader;
> > reader = (OdbcDataReader) dbcmd.ExecuteReader();
> >
> > while(reader.Read()) {
> > Console.WriteLine("Last Name: " + reader[0].ToString());
> > }
> > reader.Close();
> > dbcmd.Dispose();
> > dbcon.Close();
> > }
> > }
> > }
> >
> >
> >
> > _______________________________________________
> > Mono-list maillist  -  Mono-list@ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list
> >
>
> _______________________________________________
> Mono-list maillist  -  Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>


_______________________________________________
Mono-list maillist  -  Mono-list@ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list