Re: IIS Postgres ASP ADO - Problem - Mailing list pgsql-odbc
From | Marko Ristola |
---|---|
Subject | Re: IIS Postgres ASP ADO - Problem |
Date | |
Msg-id | 42EE5DCC.7070801@kolumbus.fi Whole thread Raw |
In response to | Re: IIS Postgres ASP ADO - Problem (Marko Ristola <Marko.Ristola@kolumbus.fi>) |
List | pgsql-odbc |
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 > >
pgsql-odbc by date: