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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Problems with MFC AddNew



Hello,

I'm having some difficulty with adding new records using the ODBC driver
with MFC.  This is only occurring is certain situations...

I created a simple table:

CREATE TABLE project (project_id INT PRIMARY KEY);

Using Visual Studio C++ I created a CRecordset class (CProject) to
exchange data with the project table.  I then execute the following code:

CDatabase database;
database.OpenEx(_T("DSN=PostgreSQL30"));
CProject project(&database);
project.Open();
project.AddNew();
project.m_project_id = 1;
project.Update();

I get an Access Violation on the Update().  The log file shows the
following error:

psqlodbc_3100.log:
conn=01104290, query='SELECT "project_id"  , "ctid", "project_id" FROM
"public"."project"'
    [ fetched 0 rows ]

mylog_3100.log:
[1800-4.186]extend_putdata_info: entering ... self=016C5EC4,
parameters_allocated=0, num_params=1
[1800-4.191]extend_putdata_info: unable to create 1 new pdata from 0 old
pdata

Now I've been able to get the Update() to work in the following situations:

- remove the primary key:
  CREATE TABLE project (project_id INT);

- change the int to bigint:
  CREATE TABLE project (project_id BIGINT PRIMARY KEY);

- make sure at least one record exists in the table:
  CREATE TABLE project (project_id INT PRIMARY KEY);
  INSERT INTO project (project_id) VALUES (2);

So what's going on?  I would like to use int, but if I have to I can
switch to bigint.  Thanks for your help.

Ian




Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group