From: | iklassen(at)phhpc(dot)com |
---|---|
To: | pgsql-odbc(at)postgresql(dot)org |
Subject: | Problems with MFC AddNew |
Date: | 2007-01-23 17:18:48 |
Message-ID: | 63255.68.145.165.239.1169572728.squirrel@phhpc.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Feng Chen | 2007-01-24 19:16:42 | Postgres Stored Procedure Call Function Return Type OID Caching Problem |
Previous Message | Ludek Finstrle | 2007-01-23 14:56:06 | Re: odbc configuration to localhost [locally] |