Problems with MFC AddNew
От | iklassen@phhpc.com |
---|---|
Тема | Problems with MFC AddNew |
Дата | |
Msg-id | 63255.68.145.165.239.1169572728.squirrel@phhpc.com обсуждение исходный текст |
Список | 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
В списке pgsql-odbc по дате отправления: