Does psqlodbc_10_03_0000-x86(32bit) support PostgreSQL 12.6 64bit?

From: 管竚 <gzhcoder(at)126(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Does psqlodbc_10_03_0000-x86(32bit) support PostgreSQL 12.6 64bit?
Date: 2021-07-07 10:38:13
Message-ID: 5ff336b0.4ff4.17a808bf298.Coremail.gzhcoder@126.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Created by: gzhcoder
Email address: gzhcoder(at)126(dot)com
PostgreSQL version: 12.6
Operating system: windows 10
Description:

I have a classic ASP Website on IIS. I change the “ Enable 32-bit
Applications ” to True (Set the IIS application pool to spawn in a 32-bit
mode).
The Website connect to PostgreSQL 9.4 64bit with
psqlodbc_10_03_0000-x86(32bit) and it works very well .
When I change the PostgreSQL 9.4 64bit to PostgreSQL 12.6 64bit . I get the
error below :

Number: -2147217887
Description: Multiple-step OLE DB operation generated errors.

I found that the problem occurred in the third step:
Step 1. Starts a new transaction with the BeginTrans method.
Step 2. Creates an OraDynaset object from the specified SQL SELECT statement
SQL-A.
Step 3. Creates an OraDynaset object from the specified SQL SELECT statement
SQL-B.
Step 4. Ends the current transaction with the CommitTrans method.

I made an sample asp as below:
psqlodbc.asp
-------------------------------------------------------------- start
-------------------------------------------------------------

<%@ language='VBScript' %>
<%
Option Explicit

Function CreateDynaset(ArgSQL, ArgMod,cn )
dim rs
Set rs = CreateObject("ADODB.Recordset")

if ArgMod = 0 then
rs.Open ArgSQL, cn, 1, 3
else
rs.Open ArgSQL, cn, 3, 2
End if

Set CreateDynaset = rs
End Function
%>
<%
Dim sConnection, objConn , objRS1, objRS2 ,sql
stop
sConnection ="DRIVER={PostgreSQL
Unicode};SERVER=999.999.999.999;database=XXXXXX;UID=XXXXXX;PASSWORD=XXXXXX;port=5432"

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open(sConnection)

'DoStep1
objConn.BeginTrans

'SQL-A
sql = "SELECT cola FROM odbctest.t_odbc_a "
On Error Resume Next

'DoStep2
set objRS1 = CreateDynaset(sql, 8, objConn)

If Err.Number <> 0 Then
WScript.Echo "Error in DoStep2: " & Err.Description
Err.Clear
End If

If objRS1.EOF <> True Then
objRS1.Close
Set objRS1 = Nothing
End If

objRS1.Close
Set objRS1 = Nothing

'SQL-B
sql="SELECT colb FROM odbctest.t_odbc_b"

On Error Resume Next

'DoStep3
set objRS2 = CreateDynaset(sql, 8, objConn)

If Err.Number <> 0 Then
WScript.Echo "Error in DoStep3: " & Err.Description
Err.Clear
End If

If objRS2.EOF <> True Then
objRS2.Close
Set objRS = Nothing
End If

objRS2.Close
Set objRS2 = Nothing

'DoStep4
objConn.CommitTrans

objConn.Close
Set objConn = Nothing
%>

<html><body>psqlodbc test</body></html>

-------------------------------------------------------------- end
-------------------------------------------------------------

Thanks for any help

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Diego 2021-07-07 14:18:25 Re: Does psqlodbc_10_03_0000-x86(32bit) support PostgreSQL 12.6 64bit?
Previous Message Kyotaro Horiguchi 2021-07-07 08:45:47 Re: wal_keep_segments and max_wal_size