[Mono-dev] Problem with parameters using Odbc/ADO.NET/Sybase 9.0.2 ASA

Mads Bondo Dydensborg mbd at dbc.dk
Tue Jan 2 04:31:55 EST 2007


fredag 22 december 2006 16:27 skrev Daniel Morgan:
> I'm only guessing here.
> 

Thanks for your reply! I have been away, and I will go into this further, but 
perhaps you could respond to my comments below.

> Are you using an ODBC driver for Sybase ASA from
> Sybase?

Yes.

> 
> Have you tried using the FreeTDS ODBC driver?

No. I am quite unsure on how to do this. I did try reading the docs, but I am 
absolutely no expert at odbc, and so far am clueless (I am a unix/linux 
person, been given the task of making some Windows C# software "work on 
Linux". Odbc is "not my bag"). If you know of a freetds for dummies guide, or 
something, I would be very happy to try it out.

> 
> What ODBC manager are you using?  unixODBC, iODBC?

Again - I have no idea. This is debian sarge, and there seems to be both 
unixodbc and iodbc files on the system...

> 
> To be honest, I don't think anyone has tested the
> Mono's Odbc provider with Sybase ASA.

I think you are right. 

Do you know of any database against which my test program should work? I can 
try with an Oracle database, if that can help? I am in fact unsure wheter I 
lack some C# calls to make the program work.

> 
> If there is not a bug for this already in bugzilla,
> can you add it please?

Could this bug: http://bugzilla.ximian.com/show_bug.cgi?id=74917 be related?

Regards,

Mads

> 
> http://bugzilla.ximian.com/
> 
> 
> --- Mads Bondo Dydensborg <mbd at dbc.dk> wrote:
> 
> > Hi there
> > 
> > I have a program using parameters for inserts using
> > Odbc on a Linux platform 
> > against a Sybase ASA 9.0.2 server. I have tried to
> > make a minimal program to 
> > illustrate the problem. It looks like the parameters
> > are not substituted?
> > 
> > The program below fails with:
> > 
> > $ mono --debug MinTestOdbc.exe
> > 
> > Unhandled Exception: System.Data.Odbc.OdbcException:
> > [Sybase][ODBC Driver]
> > [Adaptive Server Anywhere]Column '@p1' not found
> >   at System.Data.Odbc.OdbcCommand.ExecSQL
> > (System.String sql) [0x000a2] 
> > in
> >
> /home/madsdyd/xIntegra/MONOTRUNK/mcs/class/System.Data/System.Data.Odbc/OdbcCommand.cs:414
> >   at System.Data.Odbc.OdbcCommand.ExecuteNonQuery
> > (Boolean freeHandle) 
> > [0x0002a] 
> > in
> >
> /home/madsdyd/xIntegra/MONOTRUNK/mcs/class/System.Data/System.Data.Odbc/OdbcCommand.cs:440
> >   at System.Data.Odbc.OdbcCommand.ExecuteNonQuery ()
> > [0x00000] 
> > in
> >
> /home/madsdyd/xIntegra/MONOTRUNK/mcs/class/System.Data/System.Data.Odbc/OdbcCommand.cs:428
> >   at MinOdbcTest.Main (System.String[] args)
> > [0x0004c] 
> > in
> >
> /home/madsdyd/xIntegra/SybaseTest/Odbc/MinTestOdbc.cs:23
> > 
> > The Sybase server says :
> > 
> > ** REQUEST conn: 33    STMT_PREPARE           
> > "insert into mono_sql_test ( 
> > char_value ) values ( @p1 )"
> > ** DONE    conn: 33    STMT_PREPARE           
> > Stmt=65539
> > ** REQUEST conn: 33    STMT_DESCRIBE_OUTPUT   
> > Stmt=-1
> > ** DONE    conn: 33    STMT_DESCRIBE_OUTPUT
> > ** REQUEST conn: 33    STMT_DESCRIBE_INPUT    
> > Stmt=-1
> > ** DONE    conn: 33    STMT_DESCRIBE_INPUT
> > ** REQUEST conn: 33    STMT_EXECUTE           
> > Stmt=65539
> > ** ERROR   conn: 33    code: -143 "Column '@p1' not
> > found"
> > 
> > This is mono/mcs from current svn.
> > 
> > The program is this:
> > 
> > using System;
> > using System.Data;
> > using System.Data.Odbc;
> > using System.Text;
> > 
> > class MinOdbcTest {
> >   static void Main(string[] args) {
> > 
> >     OdbcConnection cnc = new OdbcConnection 
> > ( "DSN=SybaseASA;UID=DBA;PWD=SQL" );
> >     cnc.Open();
> > 
> >     OdbcCommand insertCommand = cnc.CreateCommand();
> >     insertCommand.CommandText 
> >       = "insert into mono_sql_test ( char_value )
> > values ( @p1 )";
> >   
> >     OdbcParameterCollection parameters =
> > insertCommand.Parameters;
> >   
> >     parameters.Add ( "@p1", OdbcType.Char );
> >     parameters [ "@p1" ].Value = "This is a char";
> >     
> >     insertCommand.ExecuteNonQuery ();
> > 
> >     cnc.Close();
> >   }
> > }
> >
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> 

-- 
Med venlig hilsen/Regards

Systemudvikler/Systemsdeveloper cand.scient.dat, Ph.d., Mads Bondo Dydensborg
Dansk BiblioteksCenter A/S, Tempovej 7-11, 2750 Ballerup, Tlf. +45 44 86 77 34




More information about the Mono-devel-list mailing list