Anda di halaman 1dari 19

5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

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 http://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 :

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

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 1/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

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 :

1 object frmMain: TfrmMain


2 Left = 303
3 Top = 177
4 BorderStyle = bsDialog
5 Caption = 'Penyimpanan Data Secara Massal'
6 ClientHeight = 403
7 ClientWidth = 629
8 Color = clBtnFace
9 Font.Charset = DEFAULT_CHARSET
10 Font.Color = clWindowText
11 Font.Height = -11
12 Font.Name = 'Tahoma'
13 Font.Style = []
14 OldCreateOrder = False
15 Position = poDesktopCenter
16 OnCreate = FormCreate
17 PixelsPerInch = 96
18 TextHeight = 13
19 object Label1: TLabel
20 Left = 16
21 Top = 40
22 Width = 93
23 Height = 13
24 Caption = 'Tanggal Transaksi :'
25 end
26 object Label2: TLabel
programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 2/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning
27 Left = 37
28 Top = 13
29 Width = 72
30 Height = 13
31 Caption = 'No. Transaksi :'
32 end
33 object Label3: TLabel
34 Left = 320
35 Top = 40
36 Width = 99
37 Height = 13
38 Caption = 'Tanggal Kembali :'
39 Font.Charset = DEFAULT_CHARSET
40 Font.Color = clWindowText
41 Font.Height = -11
42 Font.Name = 'Tahoma'
43 Font.Style = [fsBold]
44 ParentFont = False
45 end
46 object Label4: TLabel
47 Left = 323
48 Top = 13
49 Width = 96
50 Height = 13
51 Alignment = taRightJustify
52 Caption = 'Anggota Peminjam :'
53 end
54 object dpPinjam: TDateTimePicker
55 Left = 115
56 Top = 37
57 Width = 186
58 Height = 21
59 Date = 39948.274073159720000000
60 Time = 39948.274073159720000000
61 TabOrder = 0
62 OnChange = dpPinjamChange
63 end
64 object edNota: TEdit
65 Left = 115
66 Top = 10
67 Width = 186
68 Height = 21
69 TabOrder = 1
70 end
71 object dpKembali: TDateTimePicker
72 Left = 425
73 Top = 37
74 Width = 186
75 Height = 21
76 Date = 39948.274073159720000000
77 Time = 39948.274073159720000000
78 TabOrder = 2
79 end
80 object cbAnggota: TComboBox
81 Left = 425
82 Top = 10
83 Width = 186
84 Height = 21
85 Style = csDropDownList
86 ItemHeight = 13
87 TabOrder = 3
88 Items.Strings = (
89 'Tigor Mangatur Manurung'
90 'Heri Wersyadi'
91 'Hendra Purwanto'
92 'Susi Simelekete'
93 'Andi Purnama')
94 end
95 object Panel1: TPanel
96 Left = 16
programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 3/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning
97 Top = 80
98 Width = 595
99 Height = 273
100 BevelOuter = bvLowered
101 TabOrder = 4
102 object Label5: TLabel
103 Left = 21
104 Top = 8
105 Width = 71
106 Height = 13
107 Caption = 'Nama Barang :'
108 end
109 object sgData: TStringGrid
110 Left = 21
111 Top = 40
112 Width = 556
113 Height = 217
114 ColCount = 2
115 FixedCols = 0
116 RowCount = 2
117 ScrollBars = ssVertical
118 TabOrder = 0
119 ColWidths = (
120 105
121 420)
122 end
123 object cbBarang: TComboBox
124 Left = 98
125 Top = 5
126 Width = 383
127 Height = 21
128 Style = csDropDownList
129 ItemHeight = 13
130 TabOrder = 1
131 end
132 object btnTambah: TButton
133 Left = 487
134 Top = 3
135 Width = 90
136 Height = 25
137 Caption = 'Tambah'
138 TabOrder = 2
139 OnClick = btnTambahClick
140 end
141 end
142 object btnSimpan: TButton
143 Left = 455
144 Top = 368
145 Width = 75
146 Height = 25
147 Caption = '&Simpan'
148 TabOrder = 5
149 OnClick = btnSimpanClick
150 end
151 object btnBatal: TButton
152 Left = 536
153 Top = 368
154 Width = 75
155 Height = 25
156 Caption = '&Batal'
157 TabOrder = 6
158 OnClick = btnBatalClick
159 end
160 object zConn: TZConnection
161 Protocol = 'mysql'
162 HostName = 'localhost'
163 Port = 3308
164 Database = 'db_vcd'
165 User = 'root'
166 Connected = True
programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 4/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning
167 Left = 16
168 Top = 368
169 end
170 object qAct: TZQuery
171 Connection = zConn
172 Params = <>
173 Left = 48
174 Top = 368
175 end
176 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

1 unit uMain;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls, ZConnection, DB,
8 ZAbstractRODataset, ZAbstractDataset, ZDataset;
9
10 type
11 TfrmMain = class(TForm)
12 Label1: TLabel;
13 dpPinjam: TDateTimePicker;
14 Label2: TLabel;
15 edNota: TEdit;
16 Label3: TLabel;
17 dpKembali: TDateTimePicker;
18 Label4: TLabel;
19 cbAnggota: TComboBox;
20 Panel1: TPanel;
21 sgData: TStringGrid;
22 Label5: TLabel;
23 cbBarang: TComboBox;
24 btnTambah: TButton;
25 btnSimpan: TButton;
26 btnBatal: TButton;
27 zConn: TZConnection;
28 qAct: TZQuery;
29 procedure FormCreate(Sender: TObject);
30 procedure btnBatalClick(Sender: TObject);
31 procedure btnTambahClick(Sender: TObject);
32 procedure dpPinjamChange(Sender: TObject);
33 procedure btnSimpanClick(Sender: TObject);
34 private
35 function GenCode: string; //fungsi auto no.nota
36 procedure RunSQL(_SQL: string ; isOpen: boolean = True);
37 { Private declarations }
38 public
39 { Public declarations }
40 end;
41 CONST
42 lama_pinjam_hari = 7; //lama pinjam adalah 7 hari
43 var
44 frmMain: TfrmMain;
45 iRow: integer; //variabel indikator jumlah baris
46
47 implementation
48
49 {$R *.dfm}
50
51 procedure TfrmMain.FormCreate(Sender: TObject);
52 var
53 ch: char;
54 begin

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 5/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning
55 //variabel jumlah baris
56 iRow := 2;
57 //Pembuatan judul kolom grid
58 with sgData do
59 begin
60 Cells[0,0] := 'No. Nota';
61 Cells[1,0] := 'Nama Barang';
62 end;
63 //buat simulasi nama barang
64 for ch := 'A' to 'Z' do
65 begin
66 cbBarang.Items.Add('Barang - ' + ch);
67 end;
68
69 //set tanggal pinjam menjadi tanggal hari ini
70 dpPinjam.Date := NOW;
71
72 //set tanggal kembali secara default
73 dpKembali.Date := Now + lama_pinjam_hari;
74
75 //munculkan nota
76 edNota.Text := GenCode;
77 end;
78
79 function TfrmMain.GenCode: string;
80 CONST
81 zero = '0000';
82 var
83 strTemp: string;
84 begin
85 //Format Nota adalah N-0001
86
87 //liat no.nota terakhir dari tb_pinjam
88 RunSQL('SELECT idpinjam FROM tb_pinjam ORDER BY idpinjam DESC LIMIT 1');
89
90 //cek apakah udah ada data dalam tabel, kalo belum hasilkan nilai pertama seperti format
91 //pada contoh
92 if qAct.Eof then
93 begin
94 result := 'N-0001';
95 exit; //stop sampe disini saja perintahnya,
96 end;
97
98 //jika memasuki baris ini, maka berarti telah ada data dalam tabel dan saatnya untuk
99 //melakukan filtering
100 strTemp := Copy(qAct.FieldByName('idpinjam').AsString,3,4); //potong data yang ditemukan dari k
101 //karakter yg dipotong adalah 4 (sampai akhir format no.nota)
102
103 strTemp := IntToStr(StrToInt(strTemp) + 1);//dah ketemu nilai berikutnya
104
105 strTemp := 'N-' + Copy(zero,1,Length(zero) - Length(strTemp)) + strTemp;
106 result := strTemp;
107
108 end;
109
110 procedure TfrmMain.btnBatalClick(Sender: TObject);
111 begin
112 Application.Terminate;
113 end;
114
115 procedure TfrmMain.btnTambahClick(Sender: TObject);
116 begin
117 //validasi ketika pilihan kosong, maka abaikan perintah penambahan
118 if cbBarang.ItemIndex < 0 then
119 exit; //supaya tidak menjalankan perintah selanjutnya ketika tidak ada barang yg dipilih
120
121 //identifikasikan jumlah baris
122 sgData.RowCount := iRow;
123
124 //isikan data sesuai pilihan ke dalam grid
programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 6/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning
125 with sgData do
126 begin
127 Cells[0,RowCount - 1] := edNota.Text;
128 Cells[1,RowCount - 1] := cbBarang.Text;
129 end;
130
131 //bersihkan isi cbBarang
132 cbBarang.ItemIndex := -1; //karena style DropDownList, maka membersihkannya dengan cara seperti
133
134 //tambah jumlah baris
135 Inc(iRow,1);
136 end;
137
138 procedure TfrmMain.dpPinjamChange(Sender: TObject);
139 begin
140 //isikan secara default tanggal pengembalian, lama pinjam sesuai dengan konstanta yang telah di
141 dpKembali.Date := dpKembali.Date + lama_pinjam_hari;
142 end;
143
144 procedure TfrmMain.RunSQL(_SQL: string; isOpen: boolean);
145 begin
146 with qAct do
147 begin
148 Close;
149 SQL.Text := _SQL;
150 if isOpen then
151 Open
152 else
153 ExecSQL;
154 end;
155 end;
156
157 procedure TfrmMain.btnSimpanClick(Sender: TObject);
158 var
159 i: integer;
160 _SQL: string;
161 begin
162 try
163 //simpan ke tabel tb_detpinjam dlu ya
164 for i:=1 to sgData.RowCount - 1 do //ini nih cara nyimpen massal yang sederhana, pake looping
165 begin //jadi disimpen per baris gitu, inget mulai baris 1 pada st
166 _SQL := 'INSERT INTO tb_detpinjam(idpinjam,barang)VALUES(' + QuotedStr(sgData.Cells[0,i]) +
167 RunSQL(_SQL,False); //eksekusi SQL
168 end;
169
170 //setelah selesai, dah simpen di tabel tb_pinjam
171 _SQL := 'INSERT INTO tb_pinjam(idpinjam,anggota,tglpinjam,tglkembali)VALUES(' +
172 QuotedStr(edNota.Text) + ',' + QuotedStr(cbAnggota.Text) + ',' + QuotedStr(FormatDateTime(
173 ',' + QuotedStr(FormatDateTime('yyyy-mm-dd',dpKembali.Date)) + ')';
174 RunSQL(_SQL,False); //eksekusi SQL
175 Application.MessageBox('Data berhasil disimpan dengan sempurna!!!','Informasi',MB_OK or MB_ICON
176
177 //generate no.nota selanjutnya
178 edNota.Text := GenCode;
179
180 //bersih - bersih...
181 iRow := 2;
182 with sgData do
183 begin
184 RowCount := iRow;
185 Cells[0,1] := ''; Cells[1,1] := '';
186 end;
187
188 except
189 Application.MessageBox('Data gagal disimpan dengan sempurna!!!','Peringatan',MB_OK or MB_ICON
190 end;
191 end;
192
193 end.

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 7/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Untuk yang belum jelas atau berhasil silahkan download project jadi disini

Demikian tutorial ini semoga berguna bagi temen-temen semuanya

About these ads

Rate this: 3 Votes

Like this:
Like

Be the first to like this.

Delphi data massal, data massal - delphi, database delphi, database mysql

Tutorial Download via Rapidshare [Delphi-Tips] Semua Tentang TEdit

58 Tanggapan untuk [Delphi] Penyimpanan Data ke Database Secara Massal

thetawvic Mei 15, 2009 pada 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

Balas

erwin November 13, 2010 pada 1:36 am


klo vb mo di pake di PC yg ga da VBnya harus dibikin paket aplikasinya dulu bro.
klo dah ada paket aplikasinya baru bisa diinstall seperti software yg lain dan prog bisa jalan tanpa ada

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 8/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

VB

Balas

Tigor Manurung Mei 15, 2009 pada 3:13 am


gak kq, msih cupu jugayap klo bisa ntar dibantu

Balas

Herlambang Mei 20, 2009 pada 1:02 pm


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

Balas

afdal Mei 24, 2009 pada 2:20 pm


nice post

Balas

kurnia Mei 25, 2009 pada 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

Balas

Tigor Manurung Mei 25, 2009 pada 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;

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 9/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Balas

Temmy Juni 4, 2009 pada 4:28 am


thanks ya bro untuk tipsnya..

Balas

ahmad Juni 10, 2009 pada 7:11 am


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

Balas

Tigor Manurung Juni 10, 2009 pada 7:14 am


@Temmy: oksama-sama.
@ahmad: apanya yg gmn???

Balas

tanaka Juni 17, 2009 pada 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

Balas

Tigor Manurung Juni 18, 2009 pada 6:24 am


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

Balas

prie Juni 20, 2009 pada 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.

Balas

Tigor Manurung Juni 22, 2009 pada 4:00 am


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

Balas

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 10/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Saysansay Juli 24, 2009 pada 1:59 am


Wah bro..ternyata dikau favorit juga

Balas

Tigor Manurung Juli 24, 2009 pada 8:37 am


@saysansay : wah lama neh gak denger kabar dikau .

Balas

ekopewe@gmail.com Juli 27, 2009 pada 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

Balas

Tigor Manurung Juli 27, 2009 pada 6:06 am


hmmtergantung, 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.

Balas

ddr Juli 27, 2009 pada 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

Balas

Tigor Manurung Juli 30, 2009 pada 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.

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 11/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Balas

dian mufti amin Juli 30, 2009 pada 4:45 am


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

Balas

Tigor Manurung Juli 30, 2009 pada 6:15 pm


Okntar deh klo ada sedikit waktu luang tak buatin tutorialnya

Balas

sky Agustus 21, 2009 pada 9:46 am


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

Terima kasih

Balas

Tigor Manurung Agustus 23, 2009 pada 1:23 pm


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

Balas

sky Agustus 25, 2009 pada 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

Balas

Tigor Manurung Agustus 25, 2009 pada 9:59 pm


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

Balas

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 12/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

marla September 17, 2009 pada 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)+,'+CBah
p.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.

Balas

Tigor Manurung September 19, 2009 pada 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

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 13/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Balas

budi Juli 9, 2012 pada 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,,

Pinokio September 25, 2009 pada 3:53 am


ka izin minta petunjuknyasaya 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

Balas

Tigor Manurung September 25, 2009 pada 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

Balas

guh Maret 19, 2010 pada 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

Balas

guh Maret 19, 2010 pada 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

Balas

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 14/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

marla Oktober 1, 2009 pada 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

Balas

Tigor Manurung Oktober 2, 2009 pada 1:24 am


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

Balas

iwan November 4, 2009 pada 8:32 am


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

Balas

manztiara Desember 10, 2009 pada 3:06 am


Keep learning as you can you will be one of professional persons

Balas

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 15/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

manztiara Desember 10, 2009 pada 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

Balas

Tigor Manurung Desember 10, 2009 pada 3:24 am


Mantabz neh si om klo dah angkat bicara

Balas

maskaes Februari 25, 2011 pada 6:46 pm


kalo pake database access bisa gak dibuat table temporary?

Balas

mas_kofa Desember 28, 2009 pada 9:23 am


aku dah coba kok error ya om.

Balas

Tigor Manurung Desember 28, 2009 pada 9:25 am


yang mana nih yang error

Balas

mas_kofa Desember 28, 2009 pada 11:09 am


aku juga bingung..error nya dimana?

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 16/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Balas

Tigor Manurung Desember 28, 2009 pada 11:11 am


wakakkakkakakkakk.ada2 aja neh )

Balas

maulana Januari 5, 2011 pada 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..

Balas

Ridwan Sapoetra Juli 24, 2011 pada 8:19 am


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

Balas

Nana Maryana Maret 23, 2012 pada 4:42 am


maf mas aq mau dajarin bikin aplikasi untuk pengdaan barang

Balas

Tigor Manurung Maret 26, 2012 pada 1:37 am


silahkan hubungi saya via ym

Balas

Nana Maryana Maret 23, 2012 pada 4:43 am


mohon bantuannya

Balas

ilham April 21, 2012 pada 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.

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 17/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

nah saat mau edit data


muncul dah gambar tuch di image form1
oya data dari access mas tigor

Balas

faham Juni 14, 2012 pada 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

Balas

Tigor Manurung Juni 16, 2012 pada 5:18 am


betul sekali mas

Balas

rian Juni 15, 2012 pada 3:06 pm


pengen osourcing pembuatan struk penjualan di qrepoot

Balas

Tigor Manurung Juni 16, 2012 pada 5:17 am


mksdnya osourcing mas?

Balas

ghopal Juli 5, 2012 pada 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

Balas

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 18/19
5/14/13 [Delphi] Penyimpanan Data ke Database Secara Massal | Programming Learning

Jin Kojecks Juli 8, 2012 pada 10:57 am


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

Balas

Meylinda Widy Ananta Juli 23, 2012 pada 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.

Balas

@kangkresna April 22, 2013 pada 8:38 am


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

Balas

Blog pada WordPress.com. Tema: zBench oleh zwwooooo. Top

programminglearning.wordpress.com/2009/05/15/delphi-penyimpanan-data-ke-database-secara-massal/ 19/19

Anda mungkin juga menyukai