Arsip: Tanya: Update MySQL di Delphi

 
user image
more 10 years ago

okiwi

Salam kenal bro n sis.. Nama saya Oki. Saya masih newbie di delphi. Saya ingin minta bantuan saudara2 sekalian untuk menyelesaikan persoalan di program saya yang kira2 sisinya sbb: ======================================= procedure TForm1.Button1Click(Sender: TObject); var kurang : integer; begin ADOConnection1.BeginTrans; if (Edit1.Text='') or (Edit2.Text='') then ShowMessage('Diisi dodol!!') //info spasi hotel, untuk mengetahui status kamar hotel else if (Edit1.Text='info') and (Edit2.Text='hotel') and (Edit3.Text='') then begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select from hotel'; ADOQuery1.Open; ADOQuery1.ExecSQL; ADOQuery1.First; Memo1.Lines.Clear; while not ADOQuery1.Eof do begin Memo1.Lines.Add('Hotel ' + ADOQuery1.Fields[1].AsString + ' ' + ADOQuery1.Fields[2].AsString + ' ' + ADOQuery1.Fields[4].AsString); ADOQuery1.Next; end; Memo1.Lines.Add('Ketik harga spasi tujuan untuk mengetahui harga kamar'); end //harga spasi tujuan, untuk mengetahui harga kamar hotel tujuan else if (Edit1.Text='harga') and (Edit3.Text='') then begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select from hotel where nama=:Nama1'; ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text; ADOQuery1.Open; ADOQuery1.ExecSQL; if ADOQuery1.RecordCount=0 then ShowMessage('Hasil Tidak Ditemukan!') else ADOQuery1.First; Memo1.Lines.Clear; while not ADOQuery1.Eof do begin Memo1.Lines.Add('Hotel ' + ADOQuery1.Fields[1].AsString + ' ' + ADOQuery1.Fields[2].AsString + ' ' + ADOQuery1.Fields[3].AsString); ADOQuery1.Next; end; Memo1.Lines.Add('Ketik pesan spasi kelas spasi tujuan untuk memesan kamar'); end //pesan spasi kelas spasi tujuan, untuk memesan kamar hotel else if (Edit1.Text='pesan') then begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select * from hotel where kelas=:Nama1 and nama=:Nama2'; ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text; ADOQuery1.Parameters.ParamByName('Nama2').Value:=Edit3.text; ADOQuery1.Open; ADOQuery1.ExecSQL; if ADOQuery1.RecordCount=0 then ShowMessage('Hasil Tidak Ditemukan!') else if ADOQuery1.Fields[4].AsInteger=0 then ShowMessage('Kamar Tidak Tersedia!') else Memo1.Lines.Clear; Memo1.Lines.Add('Pesanan Anda untuk kamar ' + ADOQuery1.Fields[2].AsString + ' hotel ' + ADOQuery1.Fields[1].AsString + ' sedang diproses'); Memo1.Lines.Add('Terima kasih'); kurang:= ADOQuery1.Fields[4].AsInteger - 1; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='update hotel set jumlah=:Kurang where kelas=:Nama1 and nama=:Nama2'; ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text; ADOQuery1.Parameters.ParamByName('Nama2').Value:=Edit3.text; ADOQuery1.Parameters.ParamByName('Kurang').Value:=IntToStr(kurang); ADOQuery1.Open; ADOQuery1.ExecSQL; end else ShowMessage('Error!'); ADOQuery1.Requery(); ADOConnection1.CommitTrans; end; end. ======================================= Pada saat update mysql, data dapat ter-update (ter-eksekusi) tetapi ada pesan error. dataset tidak mengembalikan hasil. Mohon pencerahannya.. Terima kasih banyak.. Oki Wicaksono
user image
more 10 years ago

elva_ivana

karena pertanyaannya Error pada saat aupdate maka saya akan menyeleksi basian ini saja :

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='u p d a t e hotel set jumlah=:Kurang where kelas=:Nama1 and nama=:Nama2';
ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text;
ADOQuery1.Parameters.ParamByName('Nama2').Value:=Edit3.text;
ADOQuery1.Parameters.ParamByName('Kurang').Value:=IntToStr(kurang);
ADOQuery1.Open; ----> Dihilangkan saja
ADOQuery1.ExecSQL;
user image
more 10 years ago

okiwi

kenapa pas saya hilangkan tiba2 muncul pesan error yang kira2 isinya sbb: "query tidak dapat dilakukan pada dataset yang tertutup"
user image
more 10 years ago

elva_ivana

untuk Query (S e l e c t) ADOQuery.ExecSQL - nya di hilangkan

procedure TForm1.Button1Click(Sender: TObject);
var kurang : integer;
begin
ADOConnection1.BeginTrans;
if (Edit1.Text='') or (Edit2.Text='') then
ShowMessage('Diisi dodol!!')
//info spasi hotel, untuk mengetahui status kamar hotel
else if (Edit1.Text='info') and (Edit2.Text='hotel') and (Edit3.Text='') then
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='s e l e c t  from hotel';
ADOQuery1.Open;
ADOQuery1.First;
Memo1.Lines.Clear;
while not ADOQuery1.Eof do
begin
Memo1.Lines.Add('Hotel ' + ADOQuery1.Fields[1].AsString + ' ' +
ADOQuery1.Fields[2].AsString + ' ' + ADOQuery1.Fields[4].AsString);
ADOQuery1.Next;
end;
Memo1.Lines.Add('Ketik harga spasi tujuan untuk mengetahui harga kamar');
end
//harga spasi tujuan, untuk mengetahui harga kamar hotel tujuan
else if (Edit1.Text='harga') and (Edit3.Text='') then
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' s e l e c t   from hotel where nama=:Nama1';
ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text;
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
ShowMessage('Hasil Tidak Ditemukan!')
else
ADOQuery1.First;
Memo1.Lines.Clear;
while not ADOQuery1.Eof do
begin
Memo1.Lines.Add('Hotel ' + ADOQuery1.Fields[1].AsString + ' ' +
ADOQuery1.Fields[2].AsString + ' ' + ADOQuery1.Fields[3].AsString);
ADOQuery1.Next;
end;
Memo1.Lines.Add('Ketik pesan spasi kelas spasi tujuan untuk memesan kamar');
end
//pesan spasi kelas spasi tujuan, untuk memesan kamar hotel
else if (Edit1.Text='pesan') then
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='s e l e c t * from hotel where kelas=:Nama1 and nama=:Nama2';
ADOQuery1.Parameters.ParamByName('Nama1').Value:=Edit2.text;
ADOQuery1.Parameters.ParamByName('Nama2').Value:=Edit3.text;
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
ShowMessage('Hasil Tidak Ditemukan!')
else
if ADOQuery1.Fields[4].AsInteger=0 then
ShowMessage('Kamar Tidak Tersedia!')
else
Memo1.Lines.Clear;
Memo1.Lines.Add('Pesanan Anda untuk kamar ' + ADOQuery1.Fields[2].AsString +
' hotel ' + ADOQuery1.Fields[1].AsString + ' sedang diproses');
Memo1.Lines.Add('Terima kasih');
kurang:= ADOQuery1.Fields[4].AsInteger - 1;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='u p d a t e hotel set jumlah='+IntToStr(kurang)+' where kelas='''+Edit2.Text+''' AND nama='''+Edit3.Text+'''';
ADOQuery1.ExecSQL;
end
else
ShowMessage('Error!');
end;
Contoh ini sy tdk menggunakan parameter ...
user image
more 10 years ago

elva_ivana

ups.... commit nya ketinggalan

ADOQuery1.Requery();
ADOConnection1.CommitTrans;
end;
end. 
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com