[Delphi] Problem z key violation

0

Witam...
Próbuje napisać Taki mini-generator bez danych... Ale napotkałem mały problem... przy próbie dodania kolejnego rekordu wyskakuje mi "key Violation" Najgorsze jest to że nie mam pojęcia gdzie może występować powtórzenie tej samej wartości... Myślałem ze powodem może być pole ID Więc je usunąłem... jednak nic to nie dało.. proszę o jakieś uwagi...

PS: To mój pierwszy program z bazami danych wiec możliwe są spore błędy...
Czekam na odpowiedź

{Tworzenie calkowicie nowej bazy}
procedure TForm1.Button1Click(Sender: TObject);
Begin
BaseName:=inputbox('Kreator nowej Bazy Danych','Podaj Nazwę Nowej Bazy','');
BaseDir:= inputbox('Kreator nowej Bazy Danych','Lokalizacje Nowej Bazy Danych','c:\'+BaseName);
MainTable:=inputbox('Kreator nowej Bazy Danych','Podaj Nazwę Głównej Tablicy',BaseName);
if not DirectoryExists (BaseDir) then
Begin
CreateDir (BaseDir);
Session.AddStandardAlias(BaseName,BaseDir,'');
Table1.DatabaseName:=BaseName;
Table1.TableType:=ttParadox;
Table1.TableName:=MainTable;
     if not Table1.Exists then
      Begin
        With Table1.FieldDefs do
          Begin
          With AddFieldDef do
            Begin
              Name := 'Prateritum';
              DataType := ftString;
              Required := False;
            End;
          With AddFieldDef do
            Begin
              Name := 'PartizipII';
              DataType := ftString;
              Required := False;
            End;
          With AddFieldDef do
            Begin
              Name := 'Bezokolicznik';
              DataType := ftString;
              Required := False;
            End;
          With AddFieldDef do
            Begin
              Name := 'TłumaczeniePL';
              DataType := ftString;
              Required := False;
            End;
          End;
      End;
Table1.CreateTable;
End;
if Table1.TableName='' then
Begin
Button2.Enabled:=False;
End
else
Begin
Button2.Enabled:=True;
End;
end;
{Dodawanie rekordów wartościami z pol edit}
procedure TForm1.Button2Click(Sender: TObject);
begin
if Table1.TableName='' then
Begin
Button2.Enabled:=False;
End
else
Begin
Button2.Enabled:=True;
Table1.TableName := BaseDir+'\'+MainTable;
Table1.Active := True;
Table1.OpenDatabase;
Table1.Append;
Table1.FieldValues['Prateritum']:=Edit1.Text;
Table1.FieldValues['PartizipII']:=Edit2.Text;
Table1.FieldValues['Bezokolicznik']:=Edit3.Text;
Table1.FieldValues['TłumaczeniePL']:=Edit4.Text;
Table1.Post;
Label5.caption:=inttostr(Table1.RecordCount);
End;
end;

{Wczesniej utworzonej bazy}
procedure TForm1.Button3Click(Sender: TObject);
begin
OpenDialog1.Execute;
MainTable:=ExtractFileName(OpenDialog1.FileName);
BaseDir:=ExtractFilePath(OpenDialog1.FileName);
Label6.caption:=('Załadowana baza '+basedir+MainTable);
Table1.TableName:=MainTable;
Session.AddStandardAlias(MainTable, BaseDir,'');
Edit6.Text:=BaseName;
if Table1.TableName='' then
Begin
Button2.Enabled:=False;
End
else
Begin
Button2.Enabled:=True;
End;
Button2.Enabled:=True;
Table1.TableName := BaseDir+'\'+MainTable;
Table1.Active := True;
Table1.OpenDatabase;
Label5.caption:=inttostr(Table1.RecordCount);
end;

end.
0

Heh widzę, że chyba to lekko zakręciłem... no cóż... może chociaż mnie jakoś nakierujecie... wydaje mi się że muszę dodać indexowanie... próbowałem skorzystać z Table1.AddIndex... ale efekt był powiedzmy żałosny... wynikiem tego było tylko to ze wyskoczył mi komunikat o nie możliwości korzystania z Tabeli Exclusive... czy jakoś tak ...

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