Kali ini saya akan memberikan skrip atau perintah menggunakan sqlite pada bahasa pemrograman freepascal dan Ide Lazarus.
ok, langsung saja buatlah tampilan form seperti dibawah ini;
untuk daftar objeknya seperti dibawah ini;
letakkan library kedalam folder projek, seperti gambar diatas, selanjutnya panggil komponen database yang dibutuhkan gambar berikut;
buatlah variable yang nantinya digunakan untuk mengelola database sesperti gambar berikut;
silahkan kopi dan paste skrip dibawah ini kedalam code editor anda;
procedure tampil_data(lv:TListView);
begin
SQLiteLibraryName:='sqlite3.dll';
AConnection := TSQLite3Connection.Create(nil);
ATransaction := TSQLTransaction.Create(AConnection);
AConnection.Transaction := ATransaction;
AConnection.DatabaseName := 'test_dbase';
Query := TSQLQuery.Create(nil);
Query.SQL.Text := 'select * from tb_data';
Query.Database := AConnection;
Query.Open;
lv.Items.Clear;
while not Query.Eof do
begin
with lv.Items.Add do begin
Caption:=Query.FieldByName('kode').AsString;
SubItems.Add(Query.FieldByName('nama').AsString);
end;
Query.Next;
end;
Query.Close;
AConnection.Close;
Query.Free;
ATransaction.Free;
AConnection.Free;
end;
procedure perintah(var aksi:Integer);
begin
SQLiteLibraryName:='sqlite3.dll';
AConnection := TSQLite3Connection.Create(nil);
AConnection.DatabaseName := 'test_dbase';
ATransaction := TSQLTransaction.Create(AConnection);
AConnection.Transaction := ATransaction;
AConnection.Open;
ATransaction.StartTransaction;
AConnection.ExecuteDirect('create table if not exists tb_data (kode integer, nama varchar(40));');
ATransaction.Commit;
ATransaction.StartTransaction;
if aksi=1 then
begin
if not(frm_sqlite.Edit1.Text='')then AConnection.ExecuteDirect('insert into tb_data (kode,nama) values ('+frm_sqlite.Edit1.Text+',"'+frm_sqlite.Memo1.Text+'");');
ShowMessage('tambah');
end else if aksi=2 then
begin
if not(frm_sqlite.Edit1.Text='')then AConnection.ExecuteDirect('update tb_data set nama="'+frm_sqlite.Memo1.Text+'" where kode='+ frm_sqlite.Edit1.Text);
ShowMessage('ubah');
end else if aksi=3 then
begin
if not(frm_sqlite.Edit1.Text='')then AConnection.ExecuteDirect('delete from tb_data where kode='+frm_sqlite.Edit1.Text);
ShowMessage('hapus');
end;
ATransaction.Commit;
AConnection.Close;
ATransaction.Free;
AConnection.Free;
tampil_data(frm_sqlite.ListView1);
end;
procedure Tfrm_sqlite.Button1Click(Sender: TObject);
begin
angka:=1;
perintah(angka);
end;
procedure Tfrm_sqlite.Button2Click(Sender: TObject);
begin
end;
procedure Tfrm_sqlite.Button3Click(Sender: TObject);
begin
angka:=2;
perintah(angka);
end;
procedure Tfrm_sqlite.Button4Click(Sender: TObject);
begin
angka:=3;
perintah(angka);
end;
procedure Tfrm_sqlite.Button5Click(Sender: TObject);
begin
angka:=2;
perintah(angka);
end;
procedure Tfrm_sqlite.Edit1KeyPress(Sender: TObject; var Key: char);
begin
if not (Key in [#8, '0'..'9', DecimalSeparator]) then
begin
//ShowMessage('Invalid key: ' + Key);
Key := #0;
end
else
if (Key = DecimalSeparator) and (Pos(Key, Edit1.Text) > 0) then
begin
//ShowMessage('Invalid Key: twice ' + Key);
Key := #0;
end;
end;
procedure Tfrm_sqlite.FormShow(Sender: TObject);
begin
tampil_data(ListView1);
end;
procedure Tfrm_sqlite.ListView1Click(Sender: TObject);
begin
if Assigned(ListView1.Selected) then
begin
Edit1.Text:=ListView1.Selected.Caption;
memo1.Text:=ListView1.Selected.SubItems[0];
end;
end;
perhatikan dengan seksama setiap baris perintah yang anda copy, jika ada masalah silahkan komen dibawah.