Arsip: Tanya error ???

 
user image
more 12 years ago

camp_sire

Aku mo tny neh. Ada yg salah gak ma coding dbwh ini. Aku gak ngerti kesalahannya apa. Padahal dah aku coba utak-atik bagian yg salah tapi tetap aja gak ada perkembangan. Ada warning EDatabaseError with message 'ADOQ2: Field'a' not found'. Coding ini tentang simpan data dlm database. Thanx ya atas bantuannya. procedure TFDataDiri.BBtnSimpanClick(Sender: TObject); begin if (EdID.Text='') or (EdNama.Text='') or (EdUmur.Text='') or (CbBoxBangsa.Text='') or (CbBoxAgama.Text='') or (EdKerja.Text='') or (CbBoxPendidikan.Text='') or (CbBoxKota.Text='') or (EdAlamat.Text='') or (EdKamar.Text='') then begin MessageDlg('Input data tidak boleh kosong !',mtInformation,[mbOK],0); EdID.SetFocus; Exit; end; with DM do begin ADOQ2.Active := False; ADOQ2.SQL.Clear; ADOQ2.SQL.Add('select Nama from TDataDiri where Kd_DataDiri=:a'); ADOQ2.FieldByName('a').AsString := EdID.Text; ADOQ2.Active:= true; if (ADOQ2.RecordCount>0) then begin MessageDlg('data staff sudah ada ',mtWarning,[mbOK],0); StatSimpan := 0; KosongEdit; Exit; end; ADOQ1.Active := False; ADOQ1.SQL.Clear; ADOQ1.SQL.Add('insert into Tstaff values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k)'); ADOQ1.Active := True; ADOQ1.FieldByName('a').AsString := EdID.Text; ADOQ1.FieldByName('b').AsString := EdNama.Text; ADOQ1.FieldByName('c').AsString := EdUmur.Text; ADOQ2.Active := False; ADOQ2.SQL.Clear; ADOQ2.SQL.Add('select Kd_Bangsa from TBangsa where Bangsa=:Kb'); ADOQ2.FieldByName('Kb').AsString := CbBoxBangsa.Text; ADOQ2.Active := True; ADOQ1.FieldByName('d').AsString := ADOQ2.Fields[0].AsString; ADOQ2.Active := False; ADOQ2.SQL.Clear; ADOQ2.SQL.Add('select Kd_Agama from TAgama where Agama=:Ka'); ADOQ2.FieldByName('Ka').AsString := CbBoxAgama.Text; ADOQ2.Active := True; ADOQ1.FieldByName('e').AsString := ADOQ2.Fields[0].AsString; ADOQ1.FieldByName('f').AsString := EdKerja.Text; ADOQ2.Active := False; ADOQ2.SQL.Clear; ADOQ2.SQL.Add('select Kd_Pendidikan from TPendidikan where Pendidikan=:Kp'); ADOQ2.FieldByName('Kp').AsString := CbBoxPendidikan.Text; ADOQ2.Active := True; ADOQ1.FieldByName('g').AsString := ADOQ2.Fields[0].AsString; ADOQ2.Active := False; ADOQ2.SQL.Clear; ADOQ2.SQL.Add('select Kd_Kota from TKota where Kota=:Kk'); ADOQ2.FieldByName('Kk').AsString := CbBoxKota.Text; ADOQ2.Active := True; ADOQ1.FieldByName('h').AsString := ADOQ2.Fields[0].AsString; ADOQ1.FieldByName('i').AsString := EdLahir.Text; ADOQ1.FieldByName('j').AsString := EdAlamat.Text; ADOQ1.FieldByName('k').AsString := EdKamar.Text; ADOQ1.ExecSQL; end; SetTombolDataDiri('ftfft'); EdID.SetFocus; TampilDataDiri; KosongEdit; SetEdit('ttttttttttttt'); StatusBar1.Panels[0].Text := 'Data diri baru telah tersimpan'; StatusBar1.Panels[1].Text := DateToStr(Now); end;
user image
more 12 years ago

Bahrul_power

Jelas ada yang salah, maksud anda, sebelum data disimpan, dicek terlebih dahulu apakah sudah ada, KdDatadiri sudah ada yang anda masukan dalam parameter a, anda belum memberikan nilai parameternya. jadi yang benar seperti ini :

with DM.ADOQ2 do
begin
   if active=true then close;
   SQL.Clear;
   SQL.Add('select Nama from TDataDiri where Kd_DataDiri=:a');
   Parameter[0].Value := EdID.Text;
   open;
   if RecordCount>0 then 
   begin
       MessageDlg('data staff sudah ada ',mtWarning,[mbOK],0);
       StatSimpan := 0;
       KosongEdit;
       Exit;
   end; 
end;
Moga berhasil
user image
more 12 years ago

camp_sire

Kok gak berhasil ya mas. Malah ada warning 'Parameters object is improperly defined. Inconsistent or incomplete information was provided'. Kenapa ya?
user image
more 12 years ago

unclezack

Coba ganti FieldByName[/b:1bc9b4d8f3] dengan [b:1bc9b4d8f3]ParameterByNama()
with DM do begin 
  ADOQ2.Active := False; 
  ADOQ2.SQL.Clear; 
  ADOQ2.SQL.Add('select Nama from TDataDiri where Kd_DataDiri=:a'); 
  ADOQ2.ParameterByName('a').AsString := EdID.Text; 
  ADOQ2.Active:= true; 
  ... 
end;
semoga berhasil... gudlak
user image
more 12 years ago

Bahrul_power

Oh ya, maaf saya lupa menambahkan "prepared" jadi harus ada preparenya.

with DM.ADOQ2 do
begin
   if active=true then close;
   SQL.Clear;
   SQL.Add('select Nama from TDataDiri where Kd_DataDiri=:a');
   Prepared;
   Parameter[0].Value := EdID.Text;
   open;
   if RecordCount>0 then 
   begin
       MessageDlg('data staff sudah ada ',mtWarning,[mbOK],0);
       StatSimpan := 0;
       KosongEdit;
       Exit;
   end; 
end;
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com