Arsip: Hint: Prosedur Sederhana Buat Simpen

 
user image
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:
user image
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
user image
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 ?
user image
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:
user image
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.
user image
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
Share to

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

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com