Arsip: tolong error : project1.exe raised exception class evariant

 
user image
more 16 years ago

divanda

tolong donk para delphier.. ada yang tau ga kalo ngatasin error yang muncul begini apanya yah yang harus diperbaikin?? project1.exe raised exception class EVariant TypeCastError with message 'Could not convert variant of type (Null) into type(String) '. program tetep bisa di-Run tapi setiap dijalanin ga sesuai ma yang kita inginkan..
user image
more 16 years ago

DelphiExpert

coba anda trace, code mana yg membaca variant dan memperlakukannya sebagai string. misal:

var
  V: Variant;
  S: string;
begin
  V:= GetSomeVariantValue;
  S:= V; // --> jika V = null, maka baris ini akan membangkitkan EVariant TypeCastError
end;
solusinya harus anda konversi:

var
  V: Variant;
  S: string;
begin
  V:= GetSomeVariantValue;
  S:= VarToStr(V); // --> Konversi ke string, jika V adalah null, fungsi akan mengembalikan string kosong
end;
user image
more 16 years ago

divanda

hmm,, kayaknya kok udah bener setelah aku liat di programku,, tapi kok masih tetep aja.. ini listing nya.. procedure TForm1.Button1Click(Sender: TObject); var fieldNames: string; fieldValues: Variant; begin // Jika mencari pada OrderNo if (Edit1.Text <> '') and (Edit2.Text = '') and (Edit3.Text = '') then begin fieldNames := 'OrderNo'; fieldValues := Edit1.Text; end // Jika mencari pada CustNo else if (Edit1.Text = '') and (Edit2.Text <> '') and (Edit3.Text = '') then begin fieldNames := 'CustNo'; fieldValues := Edit2.Text; end // Jika mencari pada EmpNo else if (Edit1.Text = '') and (Edit2.Text = '') and (Edit3.Text <> '') then begin fieldNames := 'EmpNo'; fieldValues := Edit3.Text; end // Jika mencari pada OrderNo dan CustNo else if (Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text = '') then begin fieldNames := 'OrderNo;CustNo'; fieldValues := VarArrayOf(); end // Jika mencari pada CustNo dan EmpNo else if (Edit1.Text = '') and (Edit2.Text <> '') and (Edit3.Text <> '') then begin fieldNames := 'CustNo;EmpNo'; fieldValues := VarArrayOf(); end // Jika mencari pada OrderNo dan EmpNo else if (Edit1.Text <> '') and (Edit2.Text = '') and (Edit3.Text <> '') then begin fieldNames := 'OrderNo;EmpNo'; fieldValues := VarArrayOf(); end // Jika mencari pada OrderNo, CustNo, dan EmpNo else if (Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then begin fieldNames := 'OrderNo;CustNo;OrderNo'; fieldValues := VarArrayOf(); end else begin Application.MessageBox( 'Anda harus mengisi salah satu field yang akan dicari', 'Informasi', MB_OK or MB_ICONEXCLAMATION); exit; end; if (not ADOTable1.Locate(fieldNames, fieldValues, )) then Application.MessageBox( 'Record tidak ditemukan', 'Kesalahan', MB_OK or MB_ICONSTOP); end;
user image
more 16 years ago

DelphiExpert

exception berhenti di baris mana?
user image
more 16 years ago

mas_kofa

@divanda .. error nya pas di baris yg mana???
user image
more 16 years ago

divanda

waktu saya trace kok di brenti baris terakhir.. pas di end nya apa ya yang salah?
user image
more 16 years ago

DelphiExpert

coba di trace step-by-step (perbaris code) - buat trace point di code paling atas lalu gunakan F8 utk trace step-by-step
user image
more 16 years ago

divanda

trimakasih2 atas petunjuknya.. tapi ketika udah dijalanin emang warning tetep muncul tapi programnya jalan
user image
more 16 years ago

mas_kofa

pas warning posisi cursor trace dimana ???
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com