Programming Learning

Free IT e-learning

[Delphi] Penyimpanan Data ke Database Secara Massal

Tutorial ini saya buat sebenarnya menanggapi banyaknya pertanyaan2 baik melalui ym ato email bahkan temen2 sendiri ada yg telepon menanyakan bagaimana caranya menyimpan data input dari aplikasi ke database dalam 1x klik maka akan menyimpan seluruh data yang tertampung sebelumnya, mungkin hal ini dapat diakali dengan cara membuat suatu table temporary dan kemudian isi dari table temporary tersebut dimasukkan ke tabel sebenarnya tapi saya bilang hal ini sangat merepotkan, sebelum memasuki topik utamanya, terlebih dahulu saya akan menjelaskan tentang kegunaan penyimpanan data secara massal ini, mungkin bagi yang masih kuliah akan mengalami hal ini ketika contohnya mengerjakan tugas membuat suatu aplikasi peminjaman dimana ketika satu anggota dapat meminjam lebih dari 1 barang, nah disini akan dibahas cara untuk menyimpannya dalam 1 klik saja. tentunya dengan menggunakan Delphi 🙂 , sebelumnya diinformasikan bahwa tutorial ini mengasumsikan temen-temen telah dapat mengkoneksikan antara aplikasi dengan database, database yang akan dicontohkan yaitu adalah MySQL. apabila temen-temen belum dapat mengkoneksikannya maka alangkah baiknya temen-temen membaca artikel sebelumnya di https://programminglearning.wordpress.com/2009/05/02/delphi-koneksi-delphi-mysql-dengan-menggunakan-zeos/ .

Sekarang kita akan memulai untuk proses pembuatannya, pertama kita siapkan terlebih dahulu rancangan database dimana saya memberi nama databasenya “db_vcd”, saya tidak akan membuat aplikasi yang kompleks melainkan hanya sesuai dengan topik yang dibahas, adapun rancangan database hanya melingkupi peminjaman saja, untuk barang dan lainnya akan saya buat sebagai data statis. berikut ini adalah rancangannya tabelnya :

Rancangan Tabel

nah, selanjutnya kita membuat suatu form, disini untuk menyimpan data-data transaksi saya akan memakai TStringGrid, berikut ini adalah rancangan formnya :

Rancangan Form

Berbeda dengan tutorial sebelumnya, sekarang saya menggunakan Delphi 7 untuk praktiknya 🙂 hal ini karena pertimbangan saya masih banyak programmer delphi yang menggunakan versi 7 untuk belajar. seperti yang kita lihat rancangan form di atas dalam koneksi dengan MySQL menggunakan Zeos dan sekali lagi bagi yang belum mengerti mengenai koneksi Aplikasi ke MySQL dengan menggunakan zeos silahkan membaca tutorial saya yang sebelumnya, untuk rancangannya sendiri, file rancangannya adalah sbb :

object frmMain: TfrmMain
Left = 303
Top = 177
BorderStyle = bsDialog
Caption = 'Penyimpanan Data Secara Massal'
ClientHeight = 403
ClientWidth = 629
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 16
Top = 40
Width = 93
Height = 13
Caption = 'Tanggal Transaksi :'
end
object Label2: TLabel
Left = 37
Top = 13
Width = 72
Height = 13
Caption = 'No. Transaksi :'
end
object Label3: TLabel
Left = 320
Top = 40
Width = 99
Height = 13
Caption = 'Tanggal Kembali :'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
end
object Label4: TLabel
Left = 323
Top = 13
Width = 96
Height = 13
Alignment = taRightJustify
Caption = 'Anggota Peminjam :'
end
object dpPinjam: TDateTimePicker
Left = 115
Top = 37
Width = 186
Height = 21
Date = 39948.274073159720000000
Time = 39948.274073159720000000
TabOrder = 0
OnChange = dpPinjamChange
end
object edNota: TEdit
Left = 115
Top = 10
Width = 186
Height = 21
TabOrder = 1
end
object dpKembali: TDateTimePicker
Left = 425
Top = 37
Width = 186
Height = 21
Date = 39948.274073159720000000
Time = 39948.274073159720000000
TabOrder = 2
end
object cbAnggota: TComboBox
Left = 425
Top = 10
Width = 186
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 3
Items.Strings = (
'Tigor Mangatur Manurung'
'Heri Wersyadi'
'Hendra Purwanto'
'Susi Simelekete'
'Andi Purnama')
end
object Panel1: TPanel
Left = 16
Top = 80
Width = 595
Height = 273
BevelOuter = bvLowered
TabOrder = 4
object Label5: TLabel
Left = 21
Top = 8
Width = 71
Height = 13
Caption = 'Nama Barang :'
end
object sgData: TStringGrid
Left = 21
Top = 40
Width = 556
Height = 217
ColCount = 2
FixedCols = 0
RowCount = 2
ScrollBars = ssVertical
TabOrder = 0
ColWidths = (
105
420)
end
object cbBarang: TComboBox
Left = 98
Top = 5
Width = 383
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 1
end
object btnTambah: TButton
Left = 487
Top = 3
Width = 90
Height = 25
Caption = 'Tambah'
TabOrder = 2
OnClick = btnTambahClick
end
end
object btnSimpan: TButton
Left = 455
Top = 368
Width = 75
Height = 25
Caption = '&Simpan'
TabOrder = 5
OnClick = btnSimpanClick
end
object btnBatal: TButton
Left = 536
Top = 368
Width = 75
Height = 25
Caption = '&Batal'
TabOrder = 6
OnClick = btnBatalClick
end
object zConn: TZConnection
Protocol = 'mysql'
HostName = 'localhost'
Port = 3308
Database = 'db_vcd'
User = 'root'
Connected = True
Left = 16
Top = 368
end
object qAct: TZQuery
Connection = zConn
Params = <>
Left = 48
Top = 368
end
end

Karena akan terlalu banyak yang diterangkan, maka saya langsung kepada kode pada unitnya, tetapi jangan khawatir karena saya telah menyertakan komentar-komentar supaya lebih mudah memahami maksud dalam setiap sintak yang ada 🙂

unit uMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls, ZConnection, DB,
ZAbstractRODataset, ZAbstractDataset, ZDataset;

type
TfrmMain = class(TForm)
Label1: TLabel;
dpPinjam: TDateTimePicker;
Label2: TLabel;
edNota: TEdit;
Label3: TLabel;
dpKembali: TDateTimePicker;
Label4: TLabel;
cbAnggota: TComboBox;
Panel1: TPanel;
sgData: TStringGrid;
Label5: TLabel;
cbBarang: TComboBox;
btnTambah: TButton;
btnSimpan: TButton;
btnBatal: TButton;
zConn: TZConnection;
qAct: TZQuery;
procedure FormCreate(Sender: TObject);
procedure btnBatalClick(Sender: TObject);
procedure btnTambahClick(Sender: TObject);
procedure dpPinjamChange(Sender: TObject);
procedure btnSimpanClick(Sender: TObject);
private
function GenCode: string; //fungsi auto no.nota
procedure RunSQL(_SQL: string ; isOpen: boolean = True);
{ Private declarations }
public
{ Public declarations }
end;
CONST
lama_pinjam_hari = 7; //lama pinjam adalah 7 hari
var
frmMain: TfrmMain;
iRow: integer;  //variabel indikator jumlah baris

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
var
ch: char;
begin
//variabel jumlah baris
iRow := 2;
//Pembuatan judul kolom grid
with sgData do
  begin
   Cells[0,0] := 'No. Nota';
   Cells[1,0] := 'Nama Barang';
  end;
//buat simulasi nama barang
for ch := 'A' to 'Z' do
  begin
   cbBarang.Items.Add('Barang - ' + ch);
  end;

//set tanggal pinjam menjadi tanggal hari ini
dpPinjam.Date := NOW;

//set tanggal kembali secara default
dpKembali.Date := Now + lama_pinjam_hari;

//munculkan nota
edNota.Text := GenCode;
end;

function TfrmMain.GenCode: string;
CONST
zero = '0000';
var
strTemp: string;
begin
//Format Nota adalah N-0001

//liat no.nota terakhir dari tb_pinjam
RunSQL('SELECT idpinjam FROM tb_pinjam ORDER BY idpinjam DESC LIMIT 1');

//cek apakah udah ada data dalam tabel, kalo belum hasilkan nilai pertama seperti format
//pada contoh
if qAct.Eof then
  begin
   result := 'N-0001';
   exit; //stop sampe disini saja perintahnya,
  end;

//jika memasuki baris ini, maka berarti telah ada data dalam tabel dan saatnya untuk
//melakukan filtering
strTemp := Copy(qAct.FieldByName('idpinjam').AsString,3,4); //potong data yang ditemukan dari karakter ke - 3 dan
//karakter yg dipotong adalah 4 (sampai akhir format no.nota)

strTemp := IntToStr(StrToInt(strTemp) + 1);//dah ketemu nilai berikutnya

strTemp := 'N-' + Copy(zero,1,Length(zero) - Length(strTemp)) + strTemp;
result  := strTemp;

end;

procedure TfrmMain.btnBatalClick(Sender: TObject);
begin
Application.Terminate;
end;

procedure TfrmMain.btnTambahClick(Sender: TObject);
begin
//validasi ketika pilihan kosong, maka abaikan perintah penambahan
if cbBarang.ItemIndex < 0 then
  exit; //supaya tidak menjalankan perintah selanjutnya ketika tidak ada barang yg dipilih

//identifikasikan jumlah baris
sgData.RowCount := iRow;

//isikan data sesuai pilihan ke dalam grid
with sgData do
  begin
   Cells[0,RowCount - 1] := edNota.Text;
   Cells[1,RowCount - 1] := cbBarang.Text;
  end;

//bersihkan isi cbBarang
cbBarang.ItemIndex := -1; //karena style DropDownList, maka membersihkannya dengan cara seperti ini

//tambah jumlah baris
Inc(iRow,1);
end;

procedure TfrmMain.dpPinjamChange(Sender: TObject);
begin
//isikan secara default tanggal pengembalian, lama pinjam sesuai dengan konstanta yang telah ditetapkan
dpKembali.Date := dpKembali.Date + lama_pinjam_hari;
end;

procedure TfrmMain.RunSQL(_SQL: string; isOpen: boolean);
begin
with qAct do
  begin
    Close;
    SQL.Text := _SQL;
    if isOpen then
     Open
    else
     ExecSQL;
  end;
end;

procedure TfrmMain.btnSimpanClick(Sender: TObject);
var
i: integer;
_SQL: string;
begin
try
//simpan ke tabel tb_detpinjam dlu ya
for i:=1 to sgData.RowCount - 1 do  //ini nih cara nyimpen massal yang sederhana, pake looping aja
  begin                             //jadi disimpen per baris gitu, inget mulai baris 1 pada stringgrid karena baris 0 adalah judul kolom!!!
    _SQL := 'INSERT INTO tb_detpinjam(idpinjam,barang)VALUES(' + QuotedStr(sgData.Cells[0,i]) + ',' + QuotedStr(sgData.Cells[1,i]) + ')';
    RunSQL(_SQL,False); //eksekusi SQL
  end;

//setelah selesai, dah simpen di tabel tb_pinjam
_SQL := 'INSERT INTO tb_pinjam(idpinjam,anggota,tglpinjam,tglkembali)VALUES(' +
QuotedStr(edNota.Text) + ',' + QuotedStr(cbAnggota.Text) + ',' + QuotedStr(FormatDateTime('yyyy-mm-dd',dpPinjam.Date)) +
',' + QuotedStr(FormatDateTime('yyyy-mm-dd',dpKembali.Date)) + ')';
RunSQL(_SQL,False); //eksekusi SQL
Application.MessageBox('Data berhasil disimpan dengan sempurna!!!','Informasi',MB_OK or MB_ICONINFORMATION);

//generate no.nota selanjutnya
edNota.Text := GenCode;

//bersih - bersih...
iRow := 2;
with sgData do
  begin
   RowCount := iRow;
   Cells[0,1] := ''; Cells[1,1] := '';
  end;

except
  Application.MessageBox('Data gagal disimpan dengan sempurna!!!','Peringatan',MB_OK or MB_ICONERROR);
end;
end;

end.

Untuk yang belum jelas atau berhasil silahkan download project jadi disini

Demikian tutorial ini semoga berguna bagi temen-temen semuanya…

69 responses to “[Delphi] Penyimpanan Data ke Database Secara Massal

  1. thetawvic Mei 15, 2009 pukul 1:19 am

    bro ahli delphie ya, saya minta diajarkan donk, biasanya saya menggunakan VB tapi kelemahan vb adalah aplikasi yg jadi tidak bisa dipake dikomputer yg ga ada vb nya.
    klo saya nanya tolong dijawab ya, saya mau blajar delphi demi bangsa ini “berlebihan ya”

    http://www.tawvic.co.cc

  2. Tigor Manurung Mei 15, 2009 pukul 3:13 am

    gak kq, msih cupu juga…yap klo bisa ntar dibantu 😀

  3. Herlambang Mei 20, 2009 pukul 1:02 pm

    Waduw..
    Boleh neh bagi-bagi ilmunya..
    saya masih newbie neh 🙂

  4. afdal Mei 24, 2009 pukul 2:20 pm

    nice post 😀

  5. kurnia Mei 25, 2009 pukul 7:05 pm

    ini kayak yang mau tak buat mas, tp masih rada2 mumet dikit. tp mayan lah ada gambaran. kasusnya juga temp tabel buat kasir.

    btw, mau nanya mas.
    gini, misal aku ada cmbbox yang isine kode produk. nagh di sampingnya itu ada nama produk. kodeproduk pake cmbbox,namaproduk pake tedit. nagh cmbbox sudah bs ambil data dari database. trus onchange di teditnya gmn ya. kok aku bingung gmn mengeluarkan record dari zQuery.

    aku coba edit1.text := zquery.fieldbyname(‘namabarang’).asString tp gak mau 😀

  6. Tigor Manurung Mei 25, 2009 pukul 7:10 pm

    Untuk menampilkan nama barang berdasarkan kode di comboBox yang terpilih???caranya gini di event OnChange ComboBox kodenya :
    with ZQuery1 do
    begin
    Close;
    SQL.Text := ‘SELECT namabarang WHERE kd_barang = “‘ + ComboBox1.Text + ‘”‘;
    Open;

    EditName.Text := FieldByName(‘namabarang’).AsString;
    end;

  7. Temmy Juni 4, 2009 pukul 4:28 am

    thanks ya bro untuk tipsnya..

  8. ahmad Juni 10, 2009 pukul 7:11 am

    bro tolongin saya dong, lagi buat tgs akhir ni, klo buat aplikasi pake delphi7 dg database interbase gmanaya?

  9. Tigor Manurung Juni 10, 2009 pukul 7:14 am

    @Temmy: ok…sama-sama.
    @ahmad: apanya yg gmn???

  10. tanaka Juni 17, 2009 pukul 1:16 am

    mas mo tanya nich cara klik check bok jika kita klik checknya maka uraian visible n itemnya di db grid enable trus jika mo nambah item dengan satu kode gimana mas

  11. Tigor Manurung Juni 18, 2009 pukul 6:24 am

    @tanaka : mungkin dapat diterangkan lebih mendetail lagi…sapa tau byk yang mengalami hal ini supaya tak buatin sklian tutorialnya…:)

  12. prie Juni 20, 2009 pukul 12:59 am

    Bang tigor… ane mo nanya klo db pake paradox max brp ribu record sech? bab aplikasi ane klo udah 2750 error klo di isi lagi… thx berat atas pencerahannya.

    • Tigor Manurung Juni 22, 2009 pukul 4:00 am

      klo ttg batasan record blon tau y…tapi setauku si klo cman 2750 msih bisa exists tuh,coba cek settingan BDE.

  13. Saysansay Juli 24, 2009 pukul 1:59 am

    Wah bro..ternyata dikau favorit juga

  14. ekopewe@gmail.com Juli 27, 2009 pukul 5:59 am

    bang tigor tanya…
    saya punya data dari mikrokontroller.trus datanya dah bisa saya tampilkan lwt delphi.kl saya pgn nyimpen (record)data itu misalnya tiap 10 menit selama 10 jam itu gmn?krn kan data itu berubah2 trs tiap detik.misalnya gini bang… mulai ambil data jam 8 pagi.jadi data yg disimpan hanya data (nilai) pada jam 08.00,08.10,08.20,08.30, dst , sampai 16.00 misalnya.
    tlg ya bang… thanx

    • Tigor Manurung Juli 27, 2009 pukul 6:06 am

      hmm…tergantung, apabila anda ingin menyimpan value tsb ke dlam database maka silahkan mempelajari koneksi ke database dulu and algoritmanya

      MicroController –> App –> DB

      kemudian dari Database tersebut akan dapat ditampilkan oleh applikasi (gunakan DBGrid).

      tetapi apabila hanya ingin monitoring biasa saja,bisa menggunakan stringgrid aja, saya rasa lebih mudah.

  15. ddr Juli 27, 2009 pukul 11:40 pm

    nice post..
    mnta izin mmpelajari tutorial nya neh bang tigor..
    sy jg da prtanyaan ne bang.. kalo cara bikin file installer aplikasi database supaya langsung jalan di kompie lain gmana ya?
    sya pake delphi+dbexpress+mysql.. mohon bantuannya….
    termaksih bnyak

    • Tigor Manurung Juli 30, 2009 pukul 6:14 pm

      apabila pke DBExpress sediakan terlebih dahulu DLL yang diperlukan and spertinya installer2 udah menyediakan kq untuk settingan SQLnya, bahkan yang saya liat seperti InstallAware yang Enterprise bisa juga mencantumkan Dumping SQL yang nantinya akan diproses oleh installaware tersebut.

  16. dian mufti amin Juli 30, 2009 pukul 4:45 am

    Bang minta tutorial cara meng edit, tambah , delete dan simpan pada delphi 7 koneksi zeos. trima kasih

  17. sky Agustus 21, 2009 pukul 9:46 am

    Mas, Bagaimana cara untuk import file db_vcd nya saya import kok selalu error??

    Terima kasih

    • Tigor Manurung Agustus 23, 2009 pukul 1:23 pm

      coba aja di liat sourcenya, rancangan struktur databasenya seperti apa, saya menggunakan HeidiSQL untuk dump SQLnya…coba deh pke HeidiSQL juga.semoga membantu… 🙂

  18. sky Agustus 25, 2009 pukul 3:52 am

    tetap mas saya sudah pakai HeidiSQL klo error selalu ada tulisan ini
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’ANSI,NO_BACKSLASH_ESCAPES’ */ ;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */ ;
    /* Input parameter count is less then expected */

    Terima Kasih

    • Tigor Manurung Agustus 25, 2009 pukul 9:59 pm

      kesalahan di atas dapat diatasi dengan cara menghapus bagian2 yang salah, asalkan script yang dihapus bukan script standard aja. 🙂

  19. marla September 17, 2009 pukul 6:02 pm

    mas, bisa bantu aku…
    aku pake dbgrid untuk nampilin data, trus aku mau nyimpan, coding yang aku buat hanya bisa nyimpan 1-1 record, sedangkan aku mau 1X klik button save, semua data yang ada didbgrid tersimpan.
    ini codingnya :
    procedure TForm12.SaveClick(Sender: TObject);
    var i: integer;
    no_formulir,npm,syarat,nilai_syarat,nilai_alternatif,kode_kriteria,nilai_kriteria,kode_subkriteria,nilai_subkriteria,hasil : string;

    begin

    ADOQ2.Connection.BeginTrans; //begintrans: mulai transaksi

    for i:= 1 to DBGHasil1.DataSource.DataSet.RecordCount do
    begin
    no_formulir := DBGHasil1.fields[0].AsString;
    syarat := DBGHasil1.fields[1].AsString;
    nilai_syarat := DBGHasil1.fields[2].AsString;
    nilai_alternatif := DBGHasil1.fields[3].AsString;
    kode_kriteria := DBGHasil1.fields[4].AsString;
    nilai_kriteria := DBGHasil1.fields[5].AsString;
    kode_subkriteria := DBGHasil1.fields[6].AsString;
    nilai_subkriteria := DBGHasil1.fields[7].AsString;
    hasil := DBGHasil1.fields[8].AsString;
    end;

    ADOC1.CommandText:=’insert into hasil’+
    ‘(tas,no_formulir,syarat,nilai_syarat,tahun_ahp, kode_beasiswa,nilai_alternatif,kode_kriteria,nilai_kriteria,kode_subkriteria,nilai_subkriteria,hasil)’+
    ‘values(‘+QuotedStr(cbtas.Text)+’,’+QuotedStr(no_formulir)+’,’+QuotedStr(syarat)+’,’+QuotedStr(nilai_syarat)+’,’+CBahp.text+’,’+QuotedStr(CBbeasiswa.Text)+’,’+QuotedStr(nilai_alternatif)+’,’+QuotedStr(kode_kriteria)+’,’+QuotedStr(nilai_kriteria)+’,’+QuotedStr(kode_subkriteria)+’,’+QuotedStr(nilai_subkriteria)+’,’+QuotedStr(hasil)+’)’;

    ADOC1.Execute;

    ADOQ2.Connection.CommitTrans;
    ShowMessage(‘Data Telah Tersimpan.’);

    end;

    apa coding-ku ada yang kurang ?tolong ya mas…
    trima kasih.

    • Tigor Manurung September 19, 2009 pukul 3:10 pm

      coba deh yang koding ini :
      for i:=1 to DBGHasil1.DataSource.DataSet.RecordCount do

      itu diganti dengan :
      for i:=0 to DBGHasil1.DataSource.DataSet.RecordCount -1 do

      coba spt itu dlu y…

      • budi Juli 9, 2012 pukul 11:05 am

        mas udah tak coba kog ga bisa ya kek script diatas,, udah tak ganti juga,, nyimpennya datanya sama semua,,

        minta bantuannya ya mas,,

  20. Pinokio September 25, 2009 pukul 3:53 am

    ka’ izin minta petunjuknya…saya lagi ngerjain tugas delphi, tentang stok barang. nah kesulitan saya ketika barang dari gudang di ambil/keluar 1 pcs, tp di databsenya ga berkurang..tolong pencerahanya..Tq

    • Tigor Manurung September 25, 2009 pukul 6:52 pm

      itu sepertinya diperlukan sebuah table stok,nah ntar keluar barang itu hanya dicatat pada table transaksi jadi tidak mengurangi jumlah yang ada di table stok. klo mo lebih lanjut silahkan hubungi via ym aj y 🙂

    • guh Maret 19, 2010 pukul 12:26 pm

      //kalo udah bikin stok barangnya

      tbbarang.fieldbyname(‘Stok’).value:=tbbarang.fieldbyname(‘stok’).asinteger – strtoint(Edit1.text);

      stok barang bisa berkurang apabila ada transaksi

    • guh Maret 19, 2010 pukul 12:31 pm

      //kalo udah bikin stok barangnya

      if tbbaranf.locate(‘Stok’,Editkodebrg.text,[]) then
      begin

      tbbarang.edit;
      tbbarangStok.value:=tbbarangStok.asinteger – strtoint(EditBanyakStok.text);
      tbbtarang.post;

      stok barang bisa berkurang apabila ada transaksi

  21. marla Oktober 1, 2009 pukul 3:46 pm

    mas,tolong aku..aku mau nyimpan data password tapi ada waktu dan tanggal,bagaimana menyimpan data berupa tanggal dan waktu ke database:
    ini koding ku..

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    edit3.Text:=DateTostr(date);
    edit4.Text:=Timetostr(time);
    end;

    procedure TForm1.isipass;
    begin

    ADOPass1.Append;
    case rgstatus.ItemIndex of
    0:ADOPass1[‘status’]:= ‘A’;
    1: ADOPass1[‘status’]:= ‘T’;
    end;
    ADOPass1[‘user_nama’]:= edit1.Text;
    ADOPass1[‘password’]:=edit2.Text;
    ADOPass1[‘tanggal’]:=edit3.text;
    ADOPass1[‘jam’]:=edit4.text;
    ADOPass1.post;

    tapi kok ga bisa ?
    thanks ye…

    • Tigor Manurung Oktober 2, 2009 pukul 1:24 am

      biasakan untuk memakai sintak sql aja, apabila terdapat error mudah untuk tracenya.silahkan explore ssuai dengan contoh 🙂 .

  22. iwan November 4, 2009 pukul 8:32 am

    makasih mas tas artikelx tp saya blom ngerti soalx baru mau belajar delphi….

  23. manztiara Desember 10, 2009 pukul 3:05 am

    😀 good post,

    gimana kalau pada saat running / open form :

    1. create temporary table
    2. assign ke grid
    3. tambahin terus sampe pegel data 😀
    4. mau ngesave … pake zSQLProcessor yang bisa multi-statement …

    insert into tabel_bener
    select … from tabel_temporer;
    delete from tabel_temporer;

    SQLProc.Execute;

    5. Refresh grid, kasih info ke user data dah ke simpen ..

    gitu ajah ide nya … dikid :mrgreen:

  24. mas_kofa Desember 28, 2009 pukul 9:23 am

    aku dah coba kok error ya om….

  25. mas_kofa Desember 28, 2009 pukul 11:09 am

    aku juga bingung..error nya dimana?

  26. maulana Januari 5, 2011 pukul 2:52 pm

    mas sory klo nanya nya nyimpang..
    gmna cara import data dari ms acces (atau sqlserver) ke interbase, saya ada tugas bikin aplikasi delphi-interbase, tp studi kasusnya perlu data yg bnyk n dari format yg berbeda..
    mohon bantuannya..

  27. Ridwan Sapoetra Juli 24, 2011 pukul 8:19 am

    Maaf Mas,,
    Saya mau tanya!!
    Kalau cara memasukkan data yang terselect di dalam string grid ke dalam Edit Box Gimana ya!!
    Event’a tapi Pas lagi DblClick baris yang terselect
    Terima Kasih

  28. Nana Maryana Maret 23, 2012 pukul 4:42 am

    ma’f mas aq mau d’ajarin bikin aplikasi untuk pengdaan barang…

  29. Nana Maryana Maret 23, 2012 pukul 4:43 am

    mohon bantuannya…

  30. ilham April 21, 2012 pukul 5:05 pm

    mas tigor mau manya nech…

    gimana caranya nyimpan data gambar trus munculin lagi.
    data gambar di save di dbgrid from2 dan image ada di form1.
    nah saat mau edit data
    muncul dah gambar tuch di image form1
    oya data dari access mas tigor

  31. faham Juni 14, 2012 pukul 6:12 am

    klo mo simpan secara masal kan sintak-sqlnya tinggal begini “INSERT INTO tabel_master (select * from tabel_temporary WHERE kondisinya_apa)”, syarat fields2nya sama, kl ga sama disamain dulu dg as

  32. rian Juni 15, 2012 pukul 3:06 pm

    pengen osourcing pembuatan struk penjualan di qrepoot

  33. ghopal Juli 5, 2012 pukul 7:46 am

    sy pake database m.access, ada table ‘tbharga’, field2x-nya status,harga,hari,jam. memakai ADOQueryHarga.
    ada 3 combobox (status,hari,jam), edit(harga).
    yg mo sy tanya, jika saya pilih:
    status = pelajar
    hari = senen
    jam = 6

    maka yang dia bayar adalah 120.000

    bentuk kodingnya gimana ya mas ???

    thx banget atas bantuannya

  34. Jin Kojecks Juli 8, 2012 pukul 10:57 am

    Bagus banget bahasan-bahansanya…. thanks jadi menambah inspirasi…. terutama bwt Tigor

  35. Meylinda Widy Ananta Juli 23, 2012 pukul 2:36 am

    Mas,mau tanya soal penyimpanan data gambar di database,coding simpannya gimana ya?(databasenya pakai paradox).
    Tlg jawabannya kirim ke email ini aja anitameylinda@ymail.com
    Trima kasih sebelumnya.

    • @kangkresna April 22, 2013 pukul 8:38 am

      gambarnya jgn disimpan,direktory tempat datanya aja yg disimpan sebagai char,lalu jika data gambar di klik kasih printah load

  36. yuni Oktober 2, 2013 pukul 4:28 am

    mas mau nanya, kalau databasenya menggunakan ms.access bisa g dilakukan penyimpanan massal?

  37. huda Desember 17, 2013 pukul 2:30 am

    nice post gan…
    udah nyari browse kemana2, ktemu juga…
    thank’s gan…gw coba dulu….

  38. sriyanti April 17, 2014 pukul 10:44 am

    mas minta tolong ,gimana cara bikin satu nota untuk banyak barang ? aku bikin project tentang penyewaan karaoke.makaaih mas

  39. Davin April 25, 2014 pukul 2:13 am

    mas, untuk 1 table gimana mas? tolong kasih petunjuk

  40. chaerul Agustus 8, 2014 pukul 5:22 am

    Bro mo tanya..
    kalo buat aplikasi penyimpan waktu pake delphi gimana yach ??

  41. chaerul Agustus 8, 2014 pukul 5:23 am

    maksudnya buat hitung selisih waktunya..

  42. berto September 7, 2016 pukul 4:24 am

    bang,kalau menyimpan pdf ke delphi sama codingnya seperti itu?hanya mengganti ekstensi jpg ke pdf?

  43. Irwan Setiawan Desember 10, 2016 pukul 1:59 am

    maaf mas, mau tanya
    misalkan kita bikin sebuah program perpustakaan dengan dua form yaitu form pengembalian dan form peminjaman, nah pada saat saya input data nya itu masuk dalam database yang berbeda antara peminjaman dan pengembalian, nah gimana ya solusi paling mudah supaya kedua form tersebut masuk dalam satu database yang sama, apakah harus membuat database dengan mysql atau bagaimana? terimakasih

Tinggalkan Balasan ke Tigor Manurung Batalkan balasan