Skip site navigation (1) Skip section navigation (2)

Re: VARCHAR, CHAR types changed ?

From: "Dave Page" <dpage(at)vale-housing(dot)co(dot)uk>
To: <lothar(dot)behrens(at)lollisoft(dot)de>,<pgsql-odbc(at)postgresql(dot)org>
Subject: Re: VARCHAR, CHAR types changed ?
Date: 2005-11-25 14:35:13
Message-ID: E7F85A1B5FF8D44C8A1AF6885BC9A0E4E7E390@ratbert.vale-housing.co.uk (view raw or flat)
Thread:
Lists: pgsql-odbc
 

> -----Original Message-----
> From: pgsql-odbc-owner(at)postgresql(dot)org 
> [mailto:pgsql-odbc-owner(at)postgresql(dot)org] On Behalf Of 
> lothar(dot)behrens(at)lollisoft(dot)de
> Sent: 25 November 2005 13:21
> To: pgsql-odbc(at)postgresql(dot)org
> Subject: Re: [ODBC] VARCHAR, CHAR types changed ?
> 
> I have tried to use ANSI driver. It crashes :-(
> 
> My code to connect and setup a statement looks like this:
> 
 <snip code>

> 
> The code is simple console based, but my database classes encapsulate
> all ODBC
> CLI calls. The internal statement handle is reused. The table get's
> created and filled.
> 
> Any ideas ?

Well, I've tried the code below which is roughly as close as I can get
to what you posted (not having your query class), and it SQLExecDirect's
just fine here. Any thoughts on what might be significantly different
here?:

Regards, Dave.

#include <windows.h>
#include <sqlext.h>
#include <stdio.h>


int main(void)
{
    HENV        henv = NULL;                                      // Env
Handle from SQLAllocEnv()
    HDBC        hdbc = NULL;                                      //
Connection handle
    HSTMT       hstmt = NULL;                                     //
Statement handle
    UCHAR       DSN[SQL_MAX_DSN_LENGTH] = "ansi";                // Data
Source Name buffer
    UCHAR       user[64] = "postgres";                           // User
ID buffer 
    UCHAR*      passwd = NULL;                                  //
Password buffer
    
    SQLAllocEnv (&henv);
    
    SQLAllocConnect (henv, &hdbc);

    SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3, 0);

    SQLSetConnectAttr(hdbc,
            SQL_ATTR_ODBC_CURSORS,
            SQL_CUR_USE_IF_NEEDED, 0);

    SQLConnect(hdbc, DSN, SQL_NTS,
                     user, SQL_NTS,
                     passwd, SQL_NTS);

    SQLSetConnectOption(hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_ON);

    SQLAllocStmt (hdbc, &hstmt);

    SQLSetStmtOption(hstmt, SQL_ATTR_CONCURRENCY, SQL_CONCUR_ROWVER);
    SQLSetStmtOption(hstmt, SQL_CURSOR_TYPE, SQL_CURSOR_KEYSET_DRIVEN);



    UCHAR buf1[] = "create table regressiontest ("
                    "test char(100) DEFAULT 'Nothing',\n"
                    "btest bool DEFAULT false, "
                    "btest1 bool DEFAULT false"
                    ");";
    UCHAR buf2[] = "insert into regressiontest (test) values('Nix')";
    UCHAR buf3[] = "insert into regressiontest (btest) values(true)";
    UCHAR buf4[] = "insert into regressiontest (btest1) values(true)";


    SQLExecDirect(hstmt, buf1, sizeof(buf1));
    SQLExecDirect(hstmt, buf2, sizeof(buf2));
    SQLExecDirect(hstmt, buf3, sizeof(buf3));
    SQLExecDirect(hstmt, buf4, sizeof(buf4));

    // This statement crashes inside SQLExecDirect(...)
    UCHAR buf5[] = "select test, btest, btest1 from regressiontest";
    SQLExecDirect(hstmt, buf5, sizeof(buf5));

//    UCHAR buf6[] = "drop table regressiontest";
//    SQLExecDirect(hstmt, buf6, sizeof(buf6));
    
    // Free the allocated statement handle
    SQLFreeStmt (hstmt, SQL_DROP);

    // Free the allocated connection handle
    SQLFreeConnect (hdbc);
    
    // Free the allocated ODBC environment handle
    SQLFreeEnv (henv);

    return 0;
}


Responses

pgsql-odbc by date

Next:From: lothar.behrensDate: 2005-11-25 19:27:38
Subject: Re: VARCHAR, CHAR types changed ?
Previous:From: lothar.behrens@lollisoft.deDate: 2005-11-25 13:20:49
Subject: Re: VARCHAR, CHAR types changed ?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group