Search code examples
perlmemory-managementodbcdbdpervasive-sql

connect failed with SQL-HY001


I am using Perl 5.14.2 on Ubuntu wheezy 64 bit.

I am trying to connect to a Pervasive SQL server v9.5 that is installed on a windows 2008 machine.

I tested the connection with isql and it works properly, I tested with the following command:

isql -v <db_name>

I use the DBD:ODBC v1.39 (latest version) perl module installed from cpan.

I am using the following command to connect to sql server:

use DBI;
my $db = DBI->connect('dbi:ODBC:Moked');

Moked is the connection name that was defined in the unixodbc v2.2.14 in odbc.ini.

/etc/odbc.ini

[Moked]
Driver=PERVASIVE_ODBC
Description=Pervasive ODBC Interface: Moked
ServerName=<ip>:<port>
DBQ=MIDA
UID=
PWD=
OpenMode=0
PvTranslate=

when I try to connect with the command i showed above I get error SQL-HY001 that by googling I understood that it relates to memory allocation, usually people get these while querying and not while trying to connect/

it seems that DBI does recognize the connection because if I type a different name, for example 'Moked2', i get the error SQL-IM002 instead.

any ideas? how can I debug this issue further? any information regarding the issue would be greatly appreciated.

thanks!


Solution

  • You are getting the memory allocation error because the PSQL v11 client cannot reliably connect to a PSQL v9.5 server. If you want to use the v11 client, you need the v11 server too. You might be able to get away with the v11 client at a Btrieve level but there were significant changes between v9 and v11 on the ODBC side.