Arsip: Hint: Prosedur Sederhana Buat Simpen

more 19 years ago
cyber_hecker
pernah bikin aplikasi yang lumayan gede ?
gue biasanya lebih suka menggunakan perintah query untuk menyimpan data (perintah INSERT) selain lebih cepat juga gak begitu bikin sibuk jaringan dan server.
tapi bila kita bikin aplikasi yang kompleks, lumayan capek jugak neh tiap harus simpan kita bikin perintah INSERT, iya kalo fieldnya dikit, tapi kalo jumlah field yang akan kita isi banyak dan ruwet ?? nah gimana ?
disini gue cuma pengen beri hint sederhana, yach itung-itung sambil beri ide bagi yang masih newbie kayak gue wakakak :D
[code:1:c9f103ef58]procedure TDataModul.AppendData(sTable: String; var sField,
sValue: array of String);
var
i : Byte;
sQuery : WideString;
lField : String;
lValue : String;
begin
// inisialisasi data yang akan digunakan
sQuery := '';
lField := '';
lValue := '';
// check apakah data sudah ada dengan asumsi, field yang pertama di isi
// adalah field yang menjadi kunci
with queMain do
begin
SQL.Clear;
SQL.Append('SELECT * FROM '+sTable+' WHERE '+sField[0]+' = '+sValue[0]);
Open;
if RecordCount > 0 then
begin
MessageDlg('Data '+QuotedStr(sValue[0])+' Sudah Ada Pada Tabel !'#10#13+
'Proses Dibatalkan..',mtError,[mbOK],0);
Abort;
end;
end;
// menciptakan query yang akan digunakan untuk append
sQuery :=
'IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES'#10#13+
'WHERE TABLE_NAME = '+QuotedStr(sTable)+')'#10#13+
'INSERT INTO '+sTable+' ( ';
for i:=0 to High(sField) - 1 do
lField := lField + sField[i] + ', ';
lField := lField + sField[High(sField)] + ' ) VALUES ( ';
for i:=0 to High(sValue) - 1 do
lValue := lValue + sValue[i] + ', ';
lValue := lValue + sValue[High(sValue)] + ' ) ';
sQuery := sQuery + lField + lValue;
with queMain do
begin
SQL.Clear;
SQL.Append(sQuery);
try
queMain.ExecSQL;
except
on e : Exception do
MessageDlg(e.ClassName+#10#13+e.Message,mtError,[mbOK],0)
end;
end;[/code:1:c9f103ef58]
cara penggunaannya :
procedure TFMainMenu.Button1Click(Sender: TObject);
var
x, y : array of String;
begin
x := VarArrayOf(['KODE','NAMA_BARANG','SATUAN']); // nama field pada table
y := VarArrayOf([QuotedStr('K01'),
QuotedStr('KALENG BEKAS'),
QuotedStr('BUAH')]); // value atau nilainya
DataModul.AppendData('aaa', // nama table
x, // nama field
y); // value
end;
nb. ini gue coba pada ms SQL Server 2000.
hint ini gak ku masukkan dalem artikel, karena masih sederhana banget dan masih butuh pengembangan dari suheng-suheng di sini :oops:

more 19 years ago
ZeAL
Kayaknya repot banget yah...
Gue kalo bikin aplikasi database pake Table dan Query yang ada di tab BDE (walaupun koneksinya pake ODBC)..
jadi kalo misalnya mo nyimpen data ke table dengan field MyField, langsung aja..
Misalnya komponen table namanya Table1 dan tipedatanya string dan sudah terkoneksi...
Table1.insert;
Table1.fieldbyname('MyField').AsString := 'Datakuuu..';
Table1.post;
udahh..beresss... Gampang kan..?? Kalo pengen pake query tinggal pake komponen QueryUpdate, langsung ketik aja perintah INSERT-nya... ;)
Trus, kayaknya gak pengaruh besar deh ke kecepatan... Bedanya tipis, gak akan terasa..
Data yang mo diinsert per record gak mungkin sampe ratusan, kan? kalo mungkin, berarti lo kudu atur lagi tuh tabel.. :D
more 19 years ago
cyber_hecker
weh kok aneh, kalo punya ku kok lama ya ?
ini contohnya yang ku bikin :
spesifikasi :
server : Microsoft Windows 2000 5.0 2195 Service Pack 4, Intel(R) XEON(TM) CPU 2.00GHz ~1995 MHz, Memory : 511MB.
client : Microsoft Windows 2000 5.0 2195 Service Pack 4, Intel(R) Pentium(R) 4 CPU 2.40GHz ~2412 MHz, Memory : 120MB
database yang digunakan :
SQL Server 2000.
banyak data yang ada : 71050 row(s)
aplikasi : delphi 6 - ADO
hasilnya :
kira-kira salah ku dimana ya ?


more 19 years ago
tox2wow
Hmm... coba upgrade memorynya mas Cyber Hecker :
1. Server : dari 511 Mb =>> 512 Mb
2. Client : dari 120 Mb =>> 128 Mb
heheheheheheh.... just kidding !! :lol:

more 19 years ago
DonVall
Nice...
Sebenernya ini metode ini ada diimplementasikan di komponen TUpdateSQL. Coba lihat di pallete BDE. Mekanisme yang sama juga diterapkan (paling tidak disarankan digunakan) di Dataset-nya .NET framework.
Sara saya, penyusunan query insert-nya jangan dilakukan setiap kali mau menyimpan data. Tetapi lakukan di bagian initialization (mis. event OnCreate dari DataModule atau Form). Sehingga setiap operasi penyimpanan tidak harus menyusun ulang SQL insert-nya. Jadinya aplikasi berjalan lebih cepat.

more 19 years ago
cyber_hecker
wah baru tau neh tentang TUpdateSQL. gimana seh cara penggunaannya ? tolong di terang in dunk :oops:, misalnya query yang di isi pada TUpdateSQL syntax nya gimana ? :P
apa TUpdateSQL itu bisa di pake untuk banyak form ? misalnya kita punya 3 buah form Form1, Form2, Form3. ketiga form ini mengakses 1 tabel yang sama. bedanya misalnya Form1 untuk meng-input atau meng edit hanya kode barang aja. trus Form2 ini berfungsi untuk meng-input atau mengedit nama barang saja, dan Form3 untuk jumlah barang. apa dengan satu TUpdateSQL bisa ?
selain itu gimana seh meng-set nilai null pada parameter query ?
:D
= malu bertanya.. program gak beres-beres wakakakak :D =
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- MS SQL server service
by iconfuseme in MsSQL more 18 years ago - why it seems so hard to search, read, and try?
by simba in OOT more 18 years ago - mengambil file di drive / direktori tanpa membaca ekstensi
by CurutZ in Tip n Trik Pemrograman more 16 years ago - Kopdar dan silahturahmi (III)
by yayaretina in OOT more 14 years ago - Error : "GRID INDEX OUT OF RANGE"
by flamade in Hal umum tentang Pascal Indonesia more 17 years ago - Indonesian RentACoder..???
by ZeAL in Hal umum tentang Pascal Indonesia more 19 years ago - form kedip
by luq_h in Form Enhancement & Graphical Controls more 13 years ago - Perintah download darii Dos
by umarbakri in Hal umum tentang Pascal Indonesia more 18 years ago - tulung dunk please
by alicool in Tip n Trik Pemrograman more 16 years ago - output yang dipotong neh...Pest pertama neh.....
by p2bf in Hal umum tentang Pascal Indonesia more 18 years ago