PDA

View Full Version : گرفتن Error key violation در هنگام post كردن



heroma
جمعه 11 شهریور 1384, 19:45 عصر
سلام
من که یک برنامه ی کتاب خونه دارم می نویسم موقع امانت دادن با سه تا جدول طرفم که یه سری تغییراتی تو دو تا جدول انجام می دم و تحت یه شرایطی رکورد وارد شده برای تقاضای امانت رو POST می کنم. اما قبل از پوست کردن Key violation می ده ولی نه همیشه .فکر می کنم فهمیده باشم چرا ولی چه طوری درستش کنم؟
من وقتی یه شرایطی روی بده این رکوردی رو که کاربر وارد کرده رد می کنم و پوست نمی کنم حالا با یه جدول نیمه کاره طرفم که موقع دوباره باز شدن برای امانت جدید یه بار Insert می شه. این کارم چه موردی داره؟ اگه اون رکوردو اول Deleteکنم بعد پنجره رو ببندم بازم فرقی نداره.
اینم خودش.

procedure TForm12.BitBtn2Click(Sender: TObject);


var

j,p,k,m:integer;
begin
while table2.Eof<>true and (j<>10) do
begin
if table1.FieldByName('Number').value=table2.FieldByN ame('Number').value then
j:=10
else table2.Next;
end;
while table3.eof<>true and (p<>10) do
begin
if table1.FieldByName('Membering Number').value=table3.FieldByName('Membering Number').Value then
p:=10
else table3.Next;
end;
if p<>10 then begin form11.Show; form12.Close; end;
if k<>10 then begin form11.Show; form12.Close; end;
if (p=10) and (k=10) then
begin
if table2.FieldByName('Amanat').value=true then form11.Show;
if table3.FieldByName('Books').value>=3 then form11.Show;
if table2.FieldByName('Amanat').value=false and (table3.FieldByName('Books').value<3) then
begin
table2.FieldByName('Amanat').value:=true; table3.FieldByName('Books').value:=table3.FieldByN ame('Books').value+1;
table1.Post;
end;
end;
end;