Rabu, 21 Oktober 2009

Tugas Struktur Data2

Tugas Struktur Data2 : Record dan Implementasinya


Record adalah Sebuah catatan (analog dengan struktur dalam beberapa bahasa) merupakan seperangkat unsur-unsun heterogen. Setiap elemen disebut field. deklarasi tipe record menetapkan jenis dan nama untuk setiap kolom. Sintaks dari deklarasi tipe record.(RE)

type recordTypeName = record
fieldList1: type1;
...
fieldListn: typen;
end

contoh :

Procedure TForm1.Button2Click(Sender: TObject);
type
TKursus =record
biaya:integer;
media:string[20];
materi:string[10];
online:boolean;
BolehDiangsur:boolean;

end ;
var
Konsultasi:Tkursus;
begin
konsultasi.biaya:=1000000;
konsultasi.media:='Chatting, ebook, source';
konsultasi.materi:='Delphi 7 & Database';
with konsultasi do
begin
online:=true;
BolehDiangsur:=true;
end;

if konsultasi.online then
showmessage('Kursus Online ...enak donk..!')
else
showmessage('susah donk..');

if konsultasi.BolehDiangsur then
showmessage('Ikutan ah...Mumpung ada uang..')
else
showmessage('Nunggu ngumpulin duit dulu..');
end;


Kirim Record Antar tabel..

Apabila ada record misal di tabel A. trus pengen di pindahin ke tabel B. nah record yang di A Hilang/di hapus trus masuk ke tabeln B, sedangkan posisi tabel ada di 2 form yang berbeda.(RE)

form1 untuk tabel 1

form2 untuk tabel 2

codingnya adalah :

jawab:

form1.table1.open;

form2.table2.open;

form1.table1.first;

While not form1.table1.IsEmpty do

begin

form2.table2.append;

form2.table2.fields[0].asstring:=form1.table1.fields[0].asstring;

form2.table2.fields[1].asstring:=form1.table1.fields[1].asstring;

form2.table2.fields[2].asstring:=form1.table1.fields[2].asstring;

// dst

form2.table2.post;

form1.table1.delete;

end;

Catatan :

  • Tidak menggunakan EOF karena data langsung dihapus
  • Tidak menggunakan table.next karena setelah dihapus record otomatis pada posisi berikutnya sampai data habis (RE)


Update Record

Procedure TFBiodata.btnEditClick(Sender: TObject);
begin
with ZQuery1 do
begin
SQL.Clear;
SQL.Add('UPDATE Pengguna SET');
SQL.Add(' NAMA = :NAMA,');
SQL.Add(' TEMPATLAHIR = :TEMPATLAHIR,');
SQL.Add(' TANGGALLAHIR = :TANGGALLAHIR,');
SQL.Add(' JENISKELAMIN = :JENISKELAMIN,');
SQL.Add(' TANGGALREG = :TANGGALREG,');
SQL.Add(' ALAMAT = :ALAMAT,');
SQL.Add(' FOTO = :FOTO');
SQL.Add('WHERE');
SQL.Add(' NO = :NO');
Params[0].AsInteger:= StrToInt(edtNO.Text);
Params[1].AsString := edtnama.Text;
Params[2].AsString := edtlahir.Text;
Params[3].AsDateTime := dtplahir.Date;
Params[4].AsString := cbbjk.Text;
Params[5].AsDateTime := dtpreg.Date;
Params[6].AsString := mmoAlamat.Text;
Params[7].blbfldZQuery1FOTO.LoadFromFile(foto);
ExecSQL;
end;
ZQuery.Free;
end;

(RE)
procedure TFBiodata.AplupClick(Sender: TObject);
begin
ZQuery1.ApplyUpdates;

end;

Diatas adalah script buat update data yang saya gunakan mas, tapi ketika saya mencari data kemudian data sudah ditampilkan di edt1...etc dan saya tekan btnedit dan proses perubahan data saya lakukan, selanjutnya saya applyUpdate tetapi data tidak berubah. mohon pencerahan nya mas.(RE)

Terima Kasih.

Jawab :

sepertinya ada kesalahan pada urutan parameter di dalam querynya, lebih baik menggunakan parambyname('paramname').as.... karena akan memperkecil kesalahan.(RE)

  • urutan parameter seharusnya

procedure TFBiodata.btnEditClick(Sender: TObject);
begin
with ZQuery1 do
begin
SQL.Clear;
SQL.Add('UPDATE Pengguna SET');
SQL.Add(' NAMA = :NAMA,');
SQL.Add(' TEMPATLAHIR = :TEMPATLAHIR,');
SQL.Add(' TANGGALLAHIR = :TANGGALLAHIR,');
SQL.Add(' JENISKELAMIN = :JENISKELAMIN,');
SQL.Add(' TANGGALREG = :TANGGALREG,');
SQL.Add(' ALAMAT = :ALAMAT,');
SQL.Add(' FOTO = :FOTO');
SQL.Add('WHERE');
SQL.Add(' NO = :NO');
Params[0].AsString := edtnama.Text;
Params[1].AsString := edtlahir.Text;
Params[2].AsDateTime := dtplahir.Date;
Params[3].AsString := cbbjk.Text;
Params[4].AsDateTime := dtpreg.Date;
Params[5].AsString := mmoAlamat.Text;
Params[6].blbfldZQuery1FOTO.LoadFromFile(foto);
Params[7].AsInteger:= StrToInt(edtNO.Text);
ExecSQL;
end;

end;

  • menggunakan parambyname

procedure TFBiodata.btnEditClick(Sender: TObject);
begin
with ZQuery1 do
begin
SQL.Clear;
SQL.Add('UPDATE Pengguna SET');
SQL.Add(' NAMA = :NAMA,');
SQL.Add(' TEMPATLAHIR = :TEMPATLAHIR,');
SQL.Add(' TANGGALLAHIR = :TANGGALLAHIR,');
SQL.Add(' JENISKELAMIN = :JENISKELAMIN,');
SQL.Add(' TANGGALREG = :TANGGALREG,');
SQL.Add(' ALAMAT = :ALAMAT,');
SQL.Add(' FOTO = :FOTO');
SQL.Add('WHERE');
SQL.Add(' NO = :NO');
Parambyname('nama').AsString := edtnama.Text;


dst..(RE)

ExecSQL;
end;

end;



Tidak ada komentar: