Problem z autoincrement w bazie

0

Witam

I kolejny proglem z ktorym musze sie zmierzyc....

Cel mojego programu: obsluga sprzedazy fakturowanej
Kodowanie w Delphi.

Program wysypuje mi sie podczas dodawania nowej faktury, gdyz tabele "Faktura" i "Pozycje" sa ze soba polaczone poprzez rekord "idtrans". Przy czym tabela "Faktura" jest nadrzedna do tabeli "Pozycje", tak wiec, w tabeli "Faktura" tenze rekord "idtrans" jest autoincrement:

create table Faktura
(
idtrans integer not null default autoincrement,
idkontrah char(15),
typ char(4),
seria char(4),
numer integer,
dopisek char(5),
data_wystaw date,
data_trans date,
termin_platn date,
forma_platn char(12),
fuwagi char(60),
constraint PK_FAKTURA primary key (idtrans)
);

No ale wprowadzanie nowej faktury mam na jednym formularzu, mianowicie naglowek faktury wprowadzam glownie poprzez DBEdit'y a szczegoly faktury(tzn. pozycje) w DBGridzie.

Zeby odpowiednio dodac nowe rekordy do obydwoch tabel, dodalem sobie procedure ktora zabezpiecza mnie przed tym, ze najpierw musze dodac naglowek Faktury, a co za tym idzie idtrans w nim ktory POWINIEN tworzyc sie automatycznie:

procedure TFakturaForm.Table2BeforeInsert(DataSet: TDataSet); //table2 przedstawia tabele Pozycje
begin
if FaktDModule.Table1.State = dsInsert then //table1 przedstawia tabele Faktura
FaktDModule.Table1.Post;
end;

Wyskakuje mi taki blad:

Project raised exception class EDatabase Error with message 'Field 'idtrans' must have a value'. Process stopped. Use Step or Run to continue.

Czy mi sie dobrze zdaje ze autoincrement po stronie bazy jednak nie dziala tak jak powinien? Czy ma ktos pomysl jak to moge obejsc?

0

nie wiem jakiej bazy uzywasz ale np w sql server byloby


create table moja(
                         ID int not null identity(1,1)
                         Opis varchar(300) not null default ''
                         )

0

Baze mam stworzona w ASA 9

1 użytkowników online, w tym zalogowanych: 0, gości: 1