Tambahkan tombol edit, sehingga tampilan pada artikel sebelumnya menjadi seperti dibawah ini
Ada pengubahan kode program pada btnSimpanClick jika
dibandingkan pada artikel sebelumnya. Pengubahan ini dilakukan untuk
alasan praktis, agar isi btnSimpanClick tidak terlalu banyak. Perubahan
dilakukan dengan pertama-tama mendeklarasikan variabel KodeEdit pada
file berekstensi h di bagian private dari program seperti dibawah ini.
private:
AnsiString KodeEdit;
Buat dua prosedur, Tambah() dan Edit(). Kedua prosedur di deklarasikan terlebih dahulu di bagina private file ekstensi h, sehingga sekarang bagian private menjadi:
private:
AnsiString KodeEdit;
void _fastcall Tambah();
void _fastcall Edit();
Pada bagian Tambah() masukkan kode berikut:
void _fastcall TForm1::Tambah()
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add(“insert into pelanggan(ID_CUSTOMER, NAMA_CUSTOMER, ALAMAT)”);
ADOQuery2->SQL->Add(“values(:IDCUSTOMER, :NAMACUSTOMER, :ALAMAT)”);
/* siapkan parameter penerimaan data */
ADOQuery2->Parameters->ParamByName(“IDCUSTOMER”)->Value = edtIDCustomer->Text;
ADOQuery2->Parameters->ParamByName(“NAMACUSTOMER”)->Value = edtNamaCustomer->Text;
ADOQuery2->Parameters->ParamByName(“ALAMAT”)->Value = edtAlamat->Text;
ADOQuery2->ExecSQL();
if (ADOQuery2->RowsAffected > 0) {
edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
/* tampilkan perubahan pada grid */
ADOQuery1->Refresh();
edtIDCustomer->Enabled = true;
ShowMessage(“Data telah disimpan”);
} else
{
ShowMessage(“Data tidak dapat disimpan”);
edtIDCustomer->SetFocus();
};
}
sedangkan pada Edit(), masukkan kode berikut:
void _fastcall TForm1::Edit()
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add(“update pelanggan set “);
ADOQuery2->SQL->Add(“NAMA_CUSTOMER = :NAMACUSTOMER , ALAMAT = :ALAMAT”);
ADOQuery2->SQL->Add(“where ID_CUSTOMER = :IDCUSTOMER”);
/* siapkan parameter penerimaan data */
ADOQuery2->Parameters->ParamByName(“IDCUSTOMER”)->Value = edtIDCustomer->Text;
ADOQuery2->Parameters->ParamByName(“NAMACUSTOMER”)->Value = edtNamaCustomer->Text;
ADOQuery2->Parameters->ParamByName(“ALAMAT”)->Value = edtAlamat->Text;
ADOQuery2->ExecSQL();
if (ADOQuery2->RowsAffected > 0) {
edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
/* tampilkan perubahan pada grid */
ADOQuery1->Refresh();
edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
ShowMessage(“Data telah diubah”);
} else
{
ShowMessage(“Data tidak dapat diubah”);
edtIDCustomer->SetFocus();
};
}
Letak perbedaaan Edit dan Tambah adalah pada query. Tambah memakai insert sedangkan Edit memakai query memakai update. Setelah itu barulah lakukan perubahan pada btnSimpanClick sebagai berikut:
{
if (KodeEdit == “tambah”) {
Tambah();
} else
{
Edit();
}
}
Sekarang langkah-langkah peng-edit-an data dilakukan dengan memilih
data tersebut pada DbGrid menggunakan mouse. Data yang dipilih tersebut
akan ditampilkan pada kota edit yang bersesuaian. Selanjutnya pengguna
klik tombol Edit. Saat pengguna selesai maka edtIDCustomer akan dibuat
tidak bisa diakses. Ini dikarenakan ID_Customer adalah primary key. Data akan dimasukkan ke database setelah pengguna menekan tombol btnSimpan.
0 comments:
Posting Komentar