Witam,
przeczytałam ostatnio artykuł na 4programmers o SQLite i przyznam że jest dość ciekawy. Nawiązując do tego artykułu i komentarzy pod nim zawartych, napisałam program w Delphi jednak wywala on błąd przy dodawaniu wpisu. Mam więc taki oto kod:
procedure TForm1.FormCreate(Sender: TObject);
begin
SQLBaza := nil;
sciezka := ExtractFilePath(application.ExeName);
if not FileExists(sciezka + 'baza.dat') then
begin
SQLBaza := TSQLiteDataBase.Create(sciezka + 'baza.dat');
//nie moze byc NOT NULL przy tworzeniu tabeli tylko przy tworzeniu kolumny
SQLBaza.ExecSQL('CREATE TABLE tabela (id INTEGER PRIMARY KEY AUTOINCREMENT, imie VARCHAR, nazwisko VARCHAR, email VARCHAR)');
end
else
SQLBaza := TSQLiteDataBase.Create(sciezka + 'baza.dat');
end;
i przycisk gdzie dodaję wpis:
procedure TForm1.Button1Click(Sender: TObject);
begin
//format:'INSERT INTO tabela VALUES("", "", "")
SQLBaza.ExecSQL('INSERT INTO tabela VALUES("", "' + Edit1.Text + '", "' + Edit2.Text + '", "' + Edit3.Text +'")');
end;
Otóż chciałam napisac program który dodaje nowe wpisy i sam ustala unikalny numer ID. Jednak dostaje komunikat z błędem "datatype mismatch". Domyślam się, że chodzi tutaj o to, że nie mogę wprowadzić parametru id jako pustego (""). Ale gdy, nawiązując do komentarza @Excray nie umieszczam żadnej wartości w parametrze id to pojawia się komunikat o tym, że tabela ma 4 kolumny a ja podałam 3. Jak mogłabym to rozwiązać?