Q&A

  • query관련 질문입니다..
이제 막 델파이에 맛이 들려고 합니다..

에러가 많이 나서 조금 답답한 면도 없지 않아 있음니다만, 도움의 말씀

부탁 드립니다..

다름이 아니고,프로그램을 실행하고 나서 "추가"폼에서 버튼을 클릭할때 마다

다음과 같은 error가 떠서 그렇습니다..



"Project project1.exe raised exception class EDatabaseError with

message 'Query1 : parameter 'n1' not found'"



혹시 n1~n21까지 함수를 정의해 주지 않아서 문제가 생기는가 해서

params속성을 이용해 보기도 했으나 해결이 안되는군요..

부탁합니다.



procedure TForm2.Button1Click(Sender: TObject);

begin

with form1 do

if (dgdit1.Text <> '') and (dgdit2.text <> '') and (dgdit3.text <> '') then



begin

query1.Close ;

query1.SQL.clear ;

query1.SQL.Add(' insert into test ');

query1.SQL.Add(' ( DATE1, NAME, IDEN_NO, BASIC_P, ' +

' DUTY_P, FAM_P, CERT_P, TECH_P, ' +

' ATTEN_P, SALE_P, BONUS, ETC, FOOD, ' +

' TRANS, MED_P, NAT_P, DISS_P, ' +

' EMP_P, FIRST, RESI_P, Total ) ');

query1.SQL.Add(' values ');

query1.SQL.Add(' ( :n1, :n2, :n3, :n4, ' +

' :n5, :n6, :n7, :n8, ' +

' :n9, :n10, :n11, :n12, :n13, ' +

' :n14, :n15, :n16, :n17, ' +

' :n18, :n19, :n20, :n21 ) ');

query1.parambyname(' n1 ').asstring := dgdit1.Text+dgdit2.Text;

query1.parambyname(' n2 ').asstring := dgdit3.Text ;

query1.parambyname(' n3 ').asstring := dgdit4.Text;

.

.

.

2  COMMENTS
  • Profile
    블랙봉 2001.05.23 07:50
    초보 wrote:

    > 이제 막 델파이에 맛이 들려고 합니다..

    > 에러가 많이 나서 조금 답답한 면도 없지 않아 있음니다만, 도움의 말씀

    > 부탁 드립니다..

    > 다름이 아니고,프로그램을 실행하고 나서 "추가"폼에서 버튼을 클릭할때 마다

    > 다음과 같은 error가 떠서 그렇습니다..

    >

    > "Project project1.exe raised exception class EDatabaseError with

    > message 'Query1 : parameter 'n1' not found'"

    >

    > 혹시 n1~n21까지 함수를 정의해 주지 않아서 문제가 생기는가 해서

    > params속성을 이용해 보기도 했으나 해결이 안되는군요..

    > 부탁합니다.

    >

    > procedure TForm2.Button1Click(Sender: TObject);

    > begin

    > with form1 do

    > if (dgdit1.Text <> '') and (dgdit2.text <> '') and (dgdit3.text <> '') then

    >

    > begin

    > query1.Close ;

    > query1.SQL.clear ;

    > query1.SQL.Add(' insert into test ');

    > query1.SQL.Add(' ( DATE1, NAME, IDEN_NO, BASIC_P, ' +

    > ' DUTY_P, FAM_P, CERT_P, TECH_P, ' +

    > ' ATTEN_P, SALE_P, BONUS, ETC, FOOD, ' +

    > ' TRANS, MED_P, NAT_P, DISS_P, ' +

    > ' EMP_P, FIRST, RESI_P, Total ) ');

    > query1.SQL.Add(' values ');

    > query1.SQL.Add(' ( :n1, :n2, :n3, :n4, ' +

    > ' :n5, :n6, :n7, :n8, ' +

    > ' :n9, :n10, :n11, :n12, :n13, ' +

    > ' :n14, :n15, :n16, :n17, ' +

    > ' :n18, :n19, :n20, :n21 ) ');

    > query1.parambyname(' n1 ').asstring := dgdit1.Text+dgdit2.Text;

    > query1.parambyname(' n2 ').asstring := dgdit3.Text ;

    > query1.parambyname(' n3 ').asstring := dgdit4.Text;

    > .

    > .

    > .

    parambyname에 스페이스가 들어가서 그런거 아닐까요?

    실제로 안해봐서 맞는지는 모르겠습니다.

  • Profile
    hobakpa 2001.05.23 19:36
    query1.parambyname(' n1 ').asstring := dgdit1.Text+dgdit2.Text;



    n1 사이의 공백을 없애보세요..

    query1.parambyname('n1').asstring := dgdit1.Text+dgdit2.Text;



    아래 다른것들도 다....