Q&A

  • 조건식의 데이터 형식이 일치하지 않는다 테이블 업데이트시에
<!--CodeS-->
     With Query1 do begin
     Close;
      SQL.Clear;
      SQL.Add('Select Sa_Cust,Sa_JuruAmt+Sa_JabAmt as CustReceipt ');
      SQL.Add('from Sa020sm ');
      SQL.Add('Where Sa_Year = :edtDate ');
      SQL.Add('and Sa_Cust = :Cust ');
      SQL.Add('Order by Sa_Cust ');
      ParamByName('edtDate').AsString := edtYear.Text + edtMonth.Text + edtDay.Text;
      ParamByName('Cust').AsString := QryBuyCust.FieldbyName('Sa_Cust').AsString;
      Open;
      ShowMessage(FloatToStr(FieldbyName('CustReceipt').AsFloat));
      QryInputBuyCust.Close;
      QryInputBuyCust.SQL.Clear;
      QryInputBuyCust.SQL.Add('Update TempTbl Set ');
      QryInputBuyCust.SQL.Add('CustReceipt = :CustReceipt ');
      QryInputBuyCust.SQL.Add('Where CustCode = :CustCode ');
==> QryInputBuyCust.ParamByName('CustReceipt').AsString := FieldbyName
                                                                                                    ('CustReceipt').AsString;
      QryInputBuyCust.ParamByName('CustCode').AsString := QryBuyCust.FieldbyName
                                                                                                ('Sa_Cust').AsString;
      QryInputBuyCust.ExecSQL;
    end;
<!--CodeE-->

위와 같이 했을때 ==> 부분에서 조건식의 데이터 형식이 일치하지 않는다고 나옵니다..
그래서 Select문에서 Select Sa_JabAmt만 남기고도 해보아도 마찬가지의 에러가 뜹니다.

거의 같은형식으로 해서 다른문장은 넘어갔는데..
다른 부분은 Group by로 위의 Select문을 묶은것은 에러가 나지 않습니다.
그래서 이것도 혹시 몰라 Group by로 묶어봤지만 역시나 같은에러가...
Sa_Cust : String
CustReceipt : Double
인데요

DB는 MS Access이고 툴은 델파이 7입니다..
고수님들의 답을 기다려봅니다....
2  COMMENTS
  • Profile
    이영주 2006.06.10 08:19
    1. >      ShowMessage(FloatToStr(FieldbyName('CustReceipt').AsFloat));
    2. > ==> QryInputBuyCust.ParamByName('CustReceipt').AsString := FieldbyName

    2에서 형변환이 제대로 되지 않은것 같습니다.
  • Profile
    초봉델파이어 2006.06.10 09:44
    <!--CodeS-->
    <!--CodeE-->


    답변 주셔서 감사합니다..

    일단 여기서 답변과 질답란을 잘 이용하고 있습니다..
    많은 도움을 받고 있습니다. 저도 도움을 언젠가는 줄수 있겠죠....^^

    일단 저 문제는 FieldbyName('CustReceipt').AsString 이쪽에서 문제가 발생하긴 했습니다.
    문제는 위의 쿼리문으로 조회한 결과값이 없다는데 있었죠..^^

    그래서 IF문을 두었습니다...
    그래서 결과가 없을시에는 0값을 그곳에 넣는것으로 처리를 하였습니다..
    혼자 헤딩해가면서 하니까 빨리 익혀지는것 같긴 하네용...^^

    영주님께는 다시 한번 감사드립니다..