Baru -baru ini, saya mengalami masalah pemrosesan batch data ketika saya sedang menulis modul pengembangan database untuk teman yang baik.
Saya telah memikirkan beberapa metode pengembangan untuk pemrosesan data batch, dan saya tidak berani menikmati ringkasan khusus dan membaginya dengan Anda.
Dalam sistem aplikasi basis data, data sering dikumpulkan, seperti menambahkan, menghapus, dan mengubah.
Operasi batch ini dilakukan dengan perintah yang sesuai dalam alat pengembangan database khusus seperti VFP menggunakan perintah append and copy.
Klausa perintah dapat dengan mudah diselesaikan. Namun, tidak ada perintah serupa di alat pengembangan lainnya.
Sebaliknya, ia menyediakan kontrol atau objek yang dapat menyelesaikan fungsi serupa, seperti di PowerBuilder
Gunakan saluran pipa (pipa data) untuk menyelesaikan pemrosesan batch data antara dua atau tabel isomorfik atau berbeda yang dibangun.
Artikel ini memperkenalkan metode pemrosesan batch menggunakan komponen timer saat menggunakan Delphi untuk pengembangan database.
Dalam pengembangan Delphi, metode yang paling banyak digunakan adalah ADO dan BDE saat menggunakan Delphi untuk pengembangan basis data.
Jadi Borland menghabiskan banyak pengalaman pada komponen BDE, jadi ada kontrol TBatchMove pada pemrosesan batch data yang dapat menyelesaikan pemrosesan batch data.
Operasi spesifik harus diselesaikan dengan mengatur properti mode tbatchmove dan kemudian memanggil metode eksekusi. Membantu dengan BDE.
Hasil aktual dari berbagai mode operasi dalam artikel ini dapat ditemukan dari desktop database Delphi
Dilihat di.
Ini bukan fokus dari artikel ini, jadi saya tidak akan menguraikan ini.
Fokus artikel ini adalah: Metode pemrosesan batch data dalam ADO.
Saat Anda mendapatkan masalah ini, metode umum adalah melintasi semua data dan memasukkannya loop.
Namun, yang ingin saya bicarakan di sini adalah metode pemrosesan batch yang cepat, efisien, dan direkomendasikan.
Prosedur TFORM1.FORMCREATE (Pengirim: Tobject);
var
Mypath: string;
const
Mypassw = '****';
Mulai
MyPath: = ExtractFilePath (Paramstr (0));
Adoconnection1.ConnectionString: = 'Provider = microsoft.jet.oledb.4.0; Sumber data ='+
Mypath+'db/db.mdb; jet oledb: kata sandi basis data ='+
Mypassw+'; info keamanan bertahan = false';
//////////// Siapkan mesin data dan muat kata sandi
Adoconnection1.loginpromppt: = false;
Adoconnection1.connected: = true;
Adotable1.connection: = adoconnection1;
Adotable1.tablename: = 'tab1';
Adotable2.connection: = adoconnection1;
Adotable2.tablename: = 'tab2';
mencoba
Adotable2.open;
Adotable1.open;
DataSource1.Dataset: = Adotable1;
Dbgrid1.datasource: = DataSource1;
DbNavigator1.datasource: = DataSource1;
kecuali
MessageBox (0, 'Can't Open Database', 'Error', MB_OK);
akhir;
///////////////////////////////
Mulai
/////////////////// Batch Pemrosesan Data Tabel Heterogen yang Melakukan Kontrol Kesalahan
DataSource2.dataset.insert;
Adotable2.fields [0] .Asstring: = Adotable1.fields [0] .Asstring;
Adotable2.fields [1] .Asstring: = Adotable1.fields [1] .Asstring;
DataSource1.dataset.next;
Jika dataSource1.dataset.eof = true maka timer1.enabled: = false;
Jika dataSource1.dataset.eof = true maka showmessage ('data berhasil diimpor!');
kecuali
MessageBox (0, 'Data Impor Gagal', 'Kesalahan', MB_OK);
akhir;
akhir;
Datamodule2.datasource1.dataset.next; /////////////////////// Kalimat ini adalah yang paling kritis, yaitu, pernyataan loop.
Waktu untuk memasukkan catatan (waktu respons timer) dapat diatur.
Ini adalah fungsi impor batch data antara tabel heterogen yang dirancang oleh karakteristik komponen timer.dataset.Next Atribut.
Kemudian, kode serupa dapat diimplementasikan untuk penghapusan, pembaruan dan fungsi lainnya (gunakan atribut DataSource untuk memodifikasi).
Karena ada fungsi kueri, saya menggunakan komponen tadoquery dalam pengembangan, kira -kira metode yang sama.
Penulis: Viivd
E-mail: [email protected]
Tanggal: 2004.6.5