안녕하세요 처음으로 질문을 올립니다. (물론 초보입니다. ^^;)
DBgrid와 Excel을 데이터소스와 ADO쿼리를 이용해서 연결했는데요...
select문에서 'select * from table1 where id_code =: load_id_code'로 했습니다.
load_id_code는 그때그때 만들어집니다.(일부러)
그래서 DBgrid에 처음에 뿌려주는 게 아무것도 없고,(그러니까 그 테이블을 열려는 목적이죠) 테이블을 일단 연 후에 데이터를 하나씩 하나씩 넣으려고 합니다.
그런데 에러가 납니다. 도와주세요
[그 부분 소스]...
Select_item.Close;
Select_item.SQL.Clear;
Select_item.SQL.Add('select * from table2');
Select_item.SQL.Add('where id_code =:LOAD_ID_CODE');
Select_item.parameters.parambyname('LOAD_ID_CODE').value := A1.text;
Select_item.Open;
if Select_item.IsEmpty then
begin
showmessage(' 아이템이 존재하지 않습니다.');
A1.Text := '';
A1.SetFocus;
end
// new_itemadd; //찾고자 하는 내용이 없을때
else
begin
A2.Text := Trim(Select_item.FieldByName('id_desc').AsString);
A3.Value := 1;
A4.Value := Select_item.FieldByName('xprice').AsFloat;
i := Select_item.FieldByName('taxrate').AsFloat;
i := (A3.Value * A4.Value) * i;
A5.Value := i;
A6.Value := (A3.Value * A4.Value) + A5.Value;
Select_item.Close;
Save_item.Close;
Save_item.SQL.clear;
Save_item.SQL.Add('Select * from table1 where id_code =: load_id_code');
Save_item.Parameters.ParamByName('load_id_code').Value := InvNoE.Text;
Save_item.Open;
Save_item.Append;
Save_item.Edit;
Save_item.FieldValues['inv_no'] := InvNoE.Text;
Save_item.FieldValues['src_code'] := src_code.Text;
Save_item.FieldValues['src_name'] := src_name.Text;
Save_item.FieldValues['id_code'] := A1.Text;
Save_item.FieldValues['id_desc'] := A2.Text;
Save_item.FieldValues['Quantity'] := A3.Value;
Save_item.FieldValues['Price'] := A4.Value;
Save_item.FieldValues['Tax'] := A5.Value;
Save_item.FieldValues['Amount'] := A6.Value;
Save_item.Post;
Add_Sum(Sender);
A3.SetFocus;
end;
[에러 구문]...
Project code3.exe raised exception class EDatabaseError with message 'Save_item:Parameter 'load_id_code' not found'. Process stopped. Use Step or Run to continue.
컴맹입니다..
소스를 이에러 메시지는 파라메타가 존재 하지 않는다는 메시시입니다.
제가 보기에는 뛰어쓰기를 하신것같은데여..
파라메타를 사용하실때에는 :변수 이런식으로 절대루 뛰어쓰기를
하면 않되는 걸루 알구 있습니다.
문제 의 그부분은...아래..
else
begin
A2.Text := Trim(Select_item.FieldByName('id_desc').AsString);
A3.Value := 1;
A4.Value := Select_item.FieldByName('xprice').AsFloat;
i := Select_item.FieldByName('taxrate').AsFloat;
i := (A3.Value * A4.Value) * i;
A5.Value := i;
A6.Value := (A3.Value * A4.Value) + A5.Value;
Select_item.Close;
Save_item.Close;
Save_item.SQL.clear;
//******************요기 load_id_code 에 뛰어쓰기를 잘못 하신것같네여..********
Save_item.SQL.Add('Select * from table1 where id_code =: load_id_code');
//****************************************************************************
Save_item.Parameters.ParamByName('load_id_code').Value := InvNoE.Text;
Save_item.Open;
Save_item.Append;
Save_item.Edit;
Save_item.FieldValues['inv_no'] := InvNoE.Text;
Save_item.FieldValues['src_code'] := src_code.Text;
Save_item.FieldValues['src_name'] := src_name.Text;
Save_item.FieldValues['id_code'] := A1.Text;
Save_item.FieldValues['id_desc'] := A2.Text;
Save_item.FieldValues['Quantity'] := A3.Value;
Save_item.FieldValues['Price'] := A4.Value;
Save_item.FieldValues['Tax'] := A5.Value;
Save_item.FieldValues['Amount'] := A6.Value;
Save_item.Post;
> Select_item.Close;
> Select_item.SQL.Clear;
> Select_item.SQL.Add('select * from table2');
> Select_item.SQL.Add('where id_code =:LOAD_ID_CODE');
> Select_item.parameters.parambyname('LOAD_ID_CODE').value := A1.text;
> Select_item.Open;
>
> if Select_item.IsEmpty then
> begin
> showmessage(' 아이템이 존재하지 않습니다.');
> A1.Text := '';
> A1.SetFocus;
> end
> // new_itemadd; //찾고자 하는 내용이 없을때
>
> else
> begin
> A2.Text := Trim(Select_item.FieldByName('id_desc').AsString);
> A3.Value := 1;
> A4.Value := Select_item.FieldByName('xprice').AsFloat;
> i := Select_item.FieldByName('taxrate').AsFloat;
> i := (A3.Value * A4.Value) * i;
> A5.Value := i;
> A6.Value := (A3.Value * A4.Value) + A5.Value;
> Select_item.Close;
>
> Save_item.Close;
> Save_item.SQL.clear;
> Save_item.SQL.Add('Select * from table1 where id_code =: load_id_code');
> Save_item.Parameters.ParamByName('load_id_code').Value := InvNoE.Text;
> Save_item.Open;
> Save_item.Append;
> Save_item.Edit;
> Save_item.FieldValues['inv_no'] := InvNoE.Text;
> Save_item.FieldValues['src_code'] := src_code.Text;
> Save_item.FieldValues['src_name'] := src_name.Text;
> Save_item.FieldValues['id_code'] := A1.Text;
> Save_item.FieldValues['id_desc'] := A2.Text;
> Save_item.FieldValues['Quantity'] := A3.Value;
> Save_item.FieldValues['Price'] := A4.Value;
> Save_item.FieldValues['Tax'] := A5.Value;
> Save_item.FieldValues['Amount'] := A6.Value;
> Save_item.Post;
>
> Add_Sum(Sender);
> A3.SetFocus;
> end;
>
> [에러 구문]...
> Project code3.exe raised exception class EDatabaseError with message 'Save_item:Parameter 'load_id_code' not found'. Process stopped. Use Step or Run to continue.