1. Buat tabel sementara
Input data adalah tautan yang tak terhindarkan dalam mengembangkan program database. Dalam struktur klien/server, klien mungkin harus memasukkan sejumlah data sebelum mengirimkannya ke database backend server. Ini memerlukan tabel data sementara untuk didirikan secara lokal (klien) untuk menyimpan data yang dimasukkan oleh pengguna , hapus data setelah dikirimkan. Manfaat dari metode ini adalah: meningkatkan efisiensi input dan mengurangi beban jaringan.
Karena jumlah data yang dimasukkan oleh pengguna pada suatu waktu umumnya kecil (tidak lebih dari beberapa ratus catatan), tabel sementara dapat dibangun dalam memori, yang membuat pemrosesan lebih cepat.
Metode 1: Gunakan Kontrol Kueri (TQuery)
Langkah 1: Letakkan kontrol kueri (tquery) pada formulir dan atur tabel data yang terhubung.
Langkah 2: Buat tquery.
Tquery
Langkah 3: Tambahkan Substasi di mana setelah pernyataan SQL asli, dan mintalah bahwa hasil kueri SQL kosong setelah menambahkan ini di mana substatement.
Misalnya:
Pilih Biolife. ″ Spesies Tidak ada ″, kategori, common_name, biolife. ″ Nama spesies ″, biolife. ″ Panjang (cm) ″, panjang_in, catatan, grafik
Dari ″ biolife.db ″ biolife
dimana biolife.category = ′ a ′ dan biolife.category = ′ B ′
Dengan cara ini, tabel sementara dibuat.
Metode 2: Buat tabel sementara menggunakan kode
Kodenya adalah sebagai berikut:
fungsi createTableInmemory (const AfieldDefs: tfieldDefs): tdataset;
var
Temptable: TClientDataset;
Mulai
Temptable: = nil;
Hasil: = nil;
Jika AFIELDDEFS $#@60; $#@62; nil maka
Mulai
mencoba
Temptable: = tClientDataset.create (Aplikasi);
Temptable.FieldDefs.assign (AFIELDDEFS);
Temptable.createdataset;
Hasil: = (Temptable sebagai TDataset);
Kecuali
Jika Temptable $#@60; $#@62; nil maka
Temptable.Free;
Hasil: = nil;
mengangkat;
akhir
akhir
akhir;
Dalam program ini, gunakan sebagai berikut:
Prosedur TFORM1.BUTTON1CLICK (Pengirim: Tobject);
var
Adataset: tdataset;
Mulai
Adataset: = tdataset.create (self);
dengan adataset.fielddefs lakukan
Mulai
Tambahkan ('name', ftstring, 30, false);
Tambahkan (′ ue ′, ftinteger, 0, false);
akhir;
dengan DataSource1 do
Mulai
Dataset: = createTableInmemory (adataset.fielddefs);
Dataset.open;
akhir;
Adataset.Free;
akhir;
Penciptaan tabel sementara selesai.
Metode 1 mudah digunakan, tetapi karena kontrol kueri digunakan untuk menanyakan database backend server saat membersihkan data, kecepatannya sedikit lebih lambat, dan tidak cocok untuk situasi di mana setiap bidang dalam tabel sementara disatukan oleh beberapa data bidang meja. Metode 2 memiliki berbagai aplikasi dan kecepatan cepat, tetapi membutuhkan kode penulisan. (Metode penggunaan TFIELDEFS dalam kode sangat sederhana, lihat bantuan online Delphi).
2. Mengkonfigurasi Mesin Data (BDE, SQL Link)
Saat mendistribusikan program basis data, Anda perlu membawa mesin data (BDE, tautan SQL), dan setelah klien menginstal program, Anda juga perlu mengkonfigurasi mesin data, seperti nama pengguna, kata sandi (kata sandi), dll. Jika dikonfigurasi secara manual, beban kerja relatif besar (tergantung pada jumlah klien).
[Idapi alias]
UseName = sysdba
Kata Sandi = Masterkey
Setelah menginstal program, mesin data dikonfigurasi secara otomatis.
3. Gunakan fungsi dalam database interbase
Pemrogram mungkin merasa tidak nyaman (hanya empat) saat menggunakan interbase sebagai database latar belakang ketika mereka menyediakan terlalu sedikit fungsi (hanya empat) dan tidak dapat dengan mudah menulis prosedur tersimpan yang kompleks. Interbase sendiri tidak dapat menulis fungsi, tetapi dapat menggunakan fungsi eksternal (disebut fungsi dalam DLL). Contoh berikut menunjukkan cara mendeklarasikan fungsi substr dalam interbase.
Deklarasikan Fungsi Eksternal Substr
CString (80), Smallint, Smallint
Mengembalikan CString (80)
Entri_point ″ ib_udf_substr ″ module_name ″ ib_udf ″
Di mana: module_name adalah nama DLL dan entri_point adalah nama fungsi.
Ini dapat digunakan setelah deklarasi, misalnya:
Pilih Substr (Negara)
dari negara
Contoh ini menggunakan database iBlocal yang dilengkapi dengan instalasi Delphi. Pengguna juga dapat menulis fungsi sendiri untuk memperluas interbase. Untuk konten lainnya, silakan lihat topik artikel terkait database, atau