Postgresql 데이터베이스에 새 QSqlRecord를 삽입하는 데 문제가 있습니다.QSqlRecord가 쿼리에서 기본값 null로 열을 설정합니다.
create table samochod(
samochod_id integer primary key default nextval('samochod_id_seq'),
marka varchar(30),
poj_silnika numeric,
typ_silnika silnik_typ,
liczba_osob smallint
);
그리고 기록 삽입 코드는 다음과 같습니다 : 다음과 같이 대상 테이블은 정의
QSqlRecord rec = model->record();
rec.setGenerated("samochod_id", false);
rec.setValue("marka", ui.brandEdit->text());
rec.setValue("poj_silnika", ui.volSpin->value());
rec.setValue("typ_silnika", ui.engineCombo->currentText());
rec.setValue("liczba_osob", ui.passengersSpin->value());
bool ok = model->insertRecord(-1,rec);
내가하지만에도 불구하고, 새로운 레코드를 삽입하면됩니다 및 SQL 나를 위해 그 samochod_id
을 설정할 수 있도록하려는 모든 나는 그것이 메시지와 함께 충돌 false로 isGenerated
을 설정
"ERROR: null value in column "samochod_id" violates not-null constraint
QPSQL: Unable to create query"
내가 QSqlRecord 데이터베이스에 samochod_id
의 생성을 떠나 만들기 위해 어떻게해야합니까?
나에게 쿼리를 생성하는 Qt의 SQL 클래스를 사용하지 않았다면 말했듯이 정확하게했을 것입니다. 제 질문은 어떻게하면 스스로 할 수있는 방법이 아니라, 제가 원하는대로 할 수있게하는 것이 었습니다. – KCH
'rec.setGenerated ("samochod_id", false);'를 주석 처리하고 어떻게 실행되는지 볼 수 있습니까? – vyegorov
이상하지만 응용 프로그램 동작은 변경되지 않습니다.문서에 따르면이 줄의 주석 처리를 해제하면 데이터베이스가이 필드를 생성해야합니다. – KCH