[Mono-list] can't connect to Sybase SQL Anywhere 10
Genadijus Paleckis
lsd at nnt.lt
Fri Feb 20 15:28:12 EST 2009
Hello list.
I am testing different methods to access Sybase iAnywhere 10 with no
luck. I've tried odbc, SybaseClient and TdsClient providers.
The main reason I have tried Tds and Sybase drivers is that they use
different TDS versions 4.2 and 5.0 respectively
Does anybody had success with this ?
test system is regular P4 (x86-32) with Ubuntu server 8.10 and mono-2.2
ODBC test
code
user at ubuntu:~/Test$ cat TestOdbcConnection.cs
using System;
using System.Data;
using System.Data.Odbc;
public class Test
{
public static void Main(string[] args)
{
IDbConnection dbcon = new
OdbcConnection("DSN=sybdb;UID=dba;PWD=sql");
dbcon.Open();
Console.WriteLine("got here");
dbcon.Close();
}
}
compiled with
mcs TestOdbcConnection.cs -r:System.Data.dll
program returns 255 error code and doesn't show me "got here" output
So I know that program failing to open connection
trace output follows
user at ubuntu:~/Test$ mono --trace TestOdbcConnection.exe | tail -10
[0xb7d456d0: 0.28365 4] ENTER: string:FindNotWhiteSpace
(int,int,int)(this:[STRING:0x66840:sql], 2, 0, -1, )
[0xb7d456d0: 0.28368 4] LEAVE: string:FindNotWhiteSpace
(int,int,int)result=2
[0xb7d456d0: 0.28371 3] LEAVE: string:Trim ()[STRING:0x66840:sql]
[0xb7d456d0: 0.28392 3] ENTER: (wrapper managed-to-native)
System.Data.Odbc.libodbc:SQLConnect
(intptr,string,int16,string,int16,string,int16)(0x99a0938,
[STRING:0x5b9e0:sybdb], -3, [STRING:0x668a0:dba], -3,
[STRING:0x66840:sql], -3, )
[0xb7d456d0: 0.28408 4] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16
(object)([STRING:0x5b9e0:greifto], )
[0xb7d456d0: 0.28412 4] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16 (object)result=375276
[0xb7d456d0: 0.28416 4] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16
(object)([STRING:0x668a0:dba], )
[0xb7d456d0: 0.28419 4] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16 (object)result=420012
[0xb7d456d0: 0.28422 4] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16
(object)([STRING:0x66840:sql], )
[0xb7d456d0: 0.28426 4] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_mono_marshal_string_to_utf16 (object)result=419916
content of /etc/freetds/freetds.conf
[sybdb]
host = 127.0.0.1
port = 2638
tds version = 5.0
content of /etc/odbc.ini
[sybdb]
Driver = FreeTDS
Trace = No
Server = sybdb
Database = testdb
content of /etc/odbcinst.ini
[FreeTDS]
Driver = /opt/sqlanywhere10/lib32/libdbodbc10.so
Setup = /usr/lib/odbc/libtdsS.so
next is SybaseClient provider
user at ubuntu:~/Test$ cat TestSybaseConnection.cs
using System;
using System.Data;
using Mono.Data.SybaseClient;
public class Test
{
public static void Main(string[] args)
{
IDbConnection dbcon = new
SybaseConnection("Server=localhost,2638;Database=sybdb;User
ID=dba;Password=sql;");
dbcon.Open();
dbcon.Close();
}
}
compiled with
mcs TestSybaseConnection.cs -r:System.Data.dll -r:Mono.Data.SybaseClient.dll
and now program fails to run
user at ubuntu:~/Test$ mono TestSybaseConnection.exe
Unhandled Exception: Mono.Data.SybaseClient.SybaseException: TDS:
unexpected token 0
at Mono.Data.SybaseClient.SybaseConnection.ErrorHandler (System.Object
sender, Mono.Data.Tds.Protocol.TdsInternalErrorMessageEventArgs e)
[0x00000]
at Mono.Data.Tds.Protocol.Tds.OnTdsErrorMessage
(Mono.Data.Tds.Protocol.TdsInternalErrorMessageEventArgs e) [0x00000]
at Mono.Data.Tds.Protocol.Tds.ProcessMessage (TdsPacketSubType
subType) [0x00000]
at Mono.Data.Tds.Protocol.Tds.ProcessSubPacket () [0x00000]
at Mono.Data.Tds.Protocol.Tds.NextResult () [0x00000]
at Mono.Data.Tds.Protocol.Tds.SkipToEnd () [0x00000]
at Mono.Data.Tds.Protocol.Tds50.Connect
(Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)
[0x00000]
at Mono.Data.SybaseClient.SybaseConnection.Open () [0x00000]
Same with TdsClient provider
user at ubuntu:~/Test$ cat TestTdsConnection.cs
using System;
using System.Data;
using Mono.Data.TdsClient;
public class Test
{
public static void Main(string[] args)
{
IDbConnection dbcon = new
TdsConnection("Server=localhost,2638;Database=sybdb;User
ID=dba;Password=sql;");
dbcon.Open();
dbcon.Close();
}
}
compiled with
mcs TestTdsConnection.cs -r:System.Data.dll -r:Mono.Data.TdsClient.dll
user at ubuntu:~/Test$ mono TestTdsConnection.exe
Unhandled Exception: Mono.Data.TdsClient.TdsException: TDS: unexpected
token 95
at Mono.Data.TdsClient.TdsConnection.ErrorHandler (System.Object
sender, Mono.Data.Tds.Protocol.TdsInternalErrorMessageEventArgs e)
[0x00000]
at Mono.Data.Tds.Protocol.Tds.OnTdsErrorMessage
(Mono.Data.Tds.Protocol.TdsInternalErrorMessageEventArgs e) [0x00000]
at Mono.Data.Tds.Protocol.Tds.ProcessMessage (TdsPacketSubType
subType) [0x00000]
at Mono.Data.Tds.Protocol.Tds.ProcessSubPacket () [0x00000]
at Mono.Data.Tds.Protocol.Tds.NextResult () [0x00000]
at Mono.Data.Tds.Protocol.Tds.SkipToEnd () [0x00000]
at Mono.Data.Tds.Protocol.Tds42.Connect
(Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)
[0x00000]
at Mono.Data.TdsClient.TdsConnection.Open () [0x00000]
More information about the Mono-list
mailing list