Thread: Re: IIS Postgres ASP ADO - Problem

Re: IIS Postgres ASP ADO - Problem

From
"Joel Fradkin"
Date:
James,

The odbc is not working well for me (I can connect but get intermittent
issues of the IIS server locking up in regards to connectivity).
My understanding is the snapshot version is the best odbc out at this time.

Also can you connect via pgadmin (IE have the hba and config files set to
allow external connections)?

My conection is not using dsn, but I did get dsn to work in testing.
My dsnless string is

Session("StringConn") =
"DRIVER={PostgreSQL};DATABASE=wazagua;SERVER=192.168.123.121;PORT=5432;UID=p
ostgres;PWD=;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;ShowOidColumn=0;RowVersi
oning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=
0;MaxVarcharSize=254;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;K
sqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsC
har=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;Up
datableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinar
y=0;UseServerSidePrepare=0"

My test using dsn used
Session("StringConn") ="DSN=postgresql;" & _
         "UID=postgres;" & _
         "PWD=;" & _
         "Database=wazuni;"

asp code to use connection is :
  dim Arec, Acmd, SQL ,AConn
  set Arec = server.CreateObject("ADODB.Recordset")
  Set AConn = Server.CreateObject("ADODB.CONNECTION")
  set Acmd = server.CreateObject("ADODB.Command")
  AConn.ConnectionTimeOut=30
  AConn.commandtimeout=30
  AConn.Open Session("StringConn")

For .net I use the npgsql .net objects.

Hope this helps you.

Joel Fradkin




-----Original Message-----
From: James Dornan [mailto:james@catch22.com]
Sent: Sunday, July 31, 2005 4:44 PM
To: jfradkin@wazagua.com
Subject: IIS Postgres ASP ADO - Problem


  I noticed more than a few post from you about trying to get Postgres
working with ODBC.
I'm hoping that maybe you would share some of that information. I am
running IIS under
windos 2003 server, and the latest(8.0.3) Postgres server on the same
machine. I cannot
connect no matter what I do. I have tried everything.

  The funny part is that I'm not new to ODBC, or windows. I've worked
with windows all
the time, but just can't figure this one out. I've tried using a
connection string, a DSN,
reinstalling, IIS, Postgres, ODBC drivers, MDAC, Jet, and so on. I still
have the same problem.
The odbc drive and it's dependant DDLs are in the path. The permisions
are wide open
(for testing this specific problem).

  Is there any insight you could shed on the dark world of windows and
ODBC, where feed-
back is rare.

  Thanks for any help you can provide.

-- James


Re: IIS Postgres ASP ADO - Problem

From
Marko Ristola
Date:
I found a crashing problem during CONNECT into a database.

Here is the problem description:

Used Environment:
libpq-API under PostgreSQL 8.0.3
CVS HEAD of psqlodbc

libpq does have a problem with freeing memory, that has not been alloced
with malloc()!

Here is the problem (I don't know, wether the PostgreSQL CVS HEAD has a
fix for this):

postgresql-8.0.3/src/interfaces/libpq/fe-connect.c, function
conninfo_parse():

        /* Make a working copy of PQconninfoOptions */
        options = malloc(sizeof(PQconninfoOptions));
...
         memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));

Unfortunately PQconninfoOptions[] contains only char*val style pointers
instead of
char val[32] type character containers.
Because of this, the assumption, that memcpy() is enough to copy the
structure, is not
true anymore. You should NOT copy a static structure this way!

Working code would be something like this:

options = malloc(sizeof(PQconninfoOptions));
memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));
for (i=0; PQconninfoOptions[i].val != NULL; i++) {
  options[i].val = strdup(PQconninfoOptions[i].val);
  ... same for all other values
}
NULL termination.



Because of this, isql fails with me at the beginning, maybe because
dmalloc library, that I use for testing, discovered the problem.

Marko Ristola


Joel Fradkin wrote:

>James,
>
>The odbc is not working well for me (I can connect but get intermittent
>issues of the IIS server locking up in regards to connectivity).
>My understanding is the snapshot version is the best odbc out at this time.
>
>Also can you connect via pgadmin (IE have the hba and config files set to
>allow external connections)?
>
>My conection is not using dsn, but I did get dsn to work in testing.
>My dsnless string is
>
>Session("StringConn") =
>"DRIVER={PostgreSQL};DATABASE=wazagua;SERVER=192.168.123.121;PORT=5432;UID=p
>ostgres;PWD=;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;ShowOidColumn=0;RowVersi
>oning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=
>0;MaxVarcharSize=254;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;K
>sqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsC
>har=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;Up
>datableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinar
>y=0;UseServerSidePrepare=0"
>
>My test using dsn used
>Session("StringConn") ="DSN=postgresql;" & _
>         "UID=postgres;" & _
>         "PWD=;" & _
>         "Database=wazuni;"
>
>asp code to use connection is :
>  dim Arec, Acmd, SQL ,AConn
>  set Arec = server.CreateObject("ADODB.Recordset")
>  Set AConn = Server.CreateObject("ADODB.CONNECTION")
>  set Acmd = server.CreateObject("ADODB.Command")
>  AConn.ConnectionTimeOut=30
>  AConn.commandtimeout=30
>  AConn.Open Session("StringConn")
>
>For .net I use the npgsql .net objects.
>
>Hope this helps you.
>
>Joel Fradkin
>
>
>
>
>-----Original Message-----
>From: James Dornan [mailto:james@catch22.com]
>Sent: Sunday, July 31, 2005 4:44 PM
>To: jfradkin@wazagua.com
>Subject: IIS Postgres ASP ADO - Problem
>
>
>  I noticed more than a few post from you about trying to get Postgres
>working with ODBC.
>I'm hoping that maybe you would share some of that information. I am
>running IIS under
>windos 2003 server, and the latest(8.0.3) Postgres server on the same
>machine. I cannot
>connect no matter what I do. I have tried everything.
>
>  The funny part is that I'm not new to ODBC, or windows. I've worked
>with windows all
>the time, but just can't figure this one out. I've tried using a
>connection string, a DSN,
>reinstalling, IIS, Postgres, ODBC drivers, MDAC, Jet, and so on. I still
>have the same problem.
>The odbc drive and it's dependant DDLs are in the path. The permisions
>are wide open
>(for testing this specific problem).
>
>  Is there any insight you could shed on the dark world of windows and
>ODBC, where feed-
>back is rare.
>
>  Thanks for any help you can provide.
>
>-- James
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: Don't 'kill -9' the postmaster
>
>


Re: IIS Postgres ASP ADO - Problem

From
Marko Ristola
Date:
This was a false alarm:
it seems, that the problem that I try to search,
is not this one.

This one seems to work correctly.

I still try to understand, why free()
fails under conninfo_parse().

free() call, that fails, is called from conninfo_parse() directly,
and not within PQconninfoFree() as this one would have been.

Marko Ristola


Marko Ristola wrote:

>I found a crashing problem during CONNECT into a database.
>
>Here is the problem description:
>
>Used Environment:
>libpq-API under PostgreSQL 8.0.3
>CVS HEAD of psqlodbc
>
>libpq does have a problem with freeing memory, that has not been alloced
>with malloc()!
>
>Here is the problem (I don't know, wether the PostgreSQL CVS HEAD has a
>fix for this):
>
>postgresql-8.0.3/src/interfaces/libpq/fe-connect.c, function
>conninfo_parse():
>
>        /* Make a working copy of PQconninfoOptions */
>        options = malloc(sizeof(PQconninfoOptions));
>...
>         memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));
>
>Unfortunately PQconninfoOptions[] contains only char*val style pointers
>instead of
>char val[32] type character containers.
>Because of this, the assumption, that memcpy() is enough to copy the
>structure, is not
>true anymore. You should NOT copy a static structure this way!
>
>Working code would be something like this:
>
>options = malloc(sizeof(PQconninfoOptions));
>memcpy(options, PQconninfoOptions, sizeof(PQconninfoOptions));
>for (i=0; PQconninfoOptions[i].val != NULL; i++) {
>  options[i].val = strdup(PQconninfoOptions[i].val);
>  ... same for all other values
>}
>NULL termination.
>
>
>
>Because of this, isql fails with me at the beginning, maybe because
>dmalloc library, that I use for testing, discovered the problem.
>
>Marko Ristola
>
>
>Joel Fradkin wrote:
>
>
>
>>James,
>>
>>The odbc is not working well for me (I can connect but get intermittent
>>issues of the IIS server locking up in regards to connectivity).
>>My understanding is the snapshot version is the best odbc out at this time.
>>
>>Also can you connect via pgadmin (IE have the hba and config files set to
>>allow external connections)?
>>
>>My conection is not using dsn, but I did get dsn to work in testing.
>>My dsnless string is
>>
>>Session("StringConn") =
>>"DRIVER={PostgreSQL};DATABASE=wazagua;SERVER=192.168.123.121;PORT=5432;UID=p
>>ostgres;PWD=;ReadOnly=0;Protocol=6.4;FakeOidIndex=0;ShowOidColumn=0;RowVersi
>>oning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=
>>0;MaxVarcharSize=254;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;K
>>sqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsC
>>har=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;Up
>>datableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinar
>>y=0;UseServerSidePrepare=0"
>>
>>My test using dsn used
>>Session("StringConn") ="DSN=postgresql;" & _
>>        "UID=postgres;" & _
>>        "PWD=;" & _
>>        "Database=wazuni;"
>>
>>asp code to use connection is :
>> dim Arec, Acmd, SQL ,AConn
>> set Arec = server.CreateObject("ADODB.Recordset")
>> Set AConn = Server.CreateObject("ADODB.CONNECTION")
>> set Acmd = server.CreateObject("ADODB.Command")
>> AConn.ConnectionTimeOut=30
>> AConn.commandtimeout=30
>> AConn.Open Session("StringConn")
>>
>>For .net I use the npgsql .net objects.
>>
>>Hope this helps you.
>>
>>Joel Fradkin
>>
>>
>>
>>
>>-----Original Message-----
>>From: James Dornan [mailto:james@catch22.com]
>>Sent: Sunday, July 31, 2005 4:44 PM
>>To: jfradkin@wazagua.com
>>Subject: IIS Postgres ASP ADO - Problem
>>
>>
>> I noticed more than a few post from you about trying to get Postgres
>>working with ODBC.
>>I'm hoping that maybe you would share some of that information. I am
>>running IIS under
>>windos 2003 server, and the latest(8.0.3) Postgres server on the same
>>machine. I cannot
>>connect no matter what I do. I have tried everything.
>>
>> The funny part is that I'm not new to ODBC, or windows. I've worked
>>with windows all
>>the time, but just can't figure this one out. I've tried using a
>>connection string, a DSN,
>>reinstalling, IIS, Postgres, ODBC drivers, MDAC, Jet, and so on. I still
>>have the same problem.
>>The odbc drive and it's dependant DDLs are in the path. The permisions
>>are wide open
>>(for testing this specific problem).
>>
>> Is there any insight you could shed on the dark world of windows and
>>ODBC, where feed-
>>back is rare.
>>
>> Thanks for any help you can provide.
>>
>>-- James
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 2: Don't 'kill -9' the postmaster
>>
>>
>>
>>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: Don't 'kill -9' the postmaster
>
>