Q&A

  • AdoQuery 문에서 조인된 자료 업데이트...
안녕하세요!
AdoQuery 에서 조인된 쿼리문에서 자료를 업데이트를 하여야
하는데 에러가 나오내요..
일반은 SqlUpDate 컴포넌트를 이용하면 되지만
AdoQuery인경우 SqlUpDate기능을 가진 건 없나요..
보시면..쿼리문은
   Select a.Num, a.Name, a.T1, a.T2, b.Moy, b.Moy2, b.Moy3 From
   Test a Inner Join Test2 b On a.Num = b.Num
이구요
   업데이트 문은.
   adoQuery1.Edit;
   adoQuery1.FieldByName('Name').AsString := 'aa';
   adoQuery1.Post;

이결과에서 나온결과를 가지고 업데이를 할려구 합니다.
자료를검색해 보니까..Object Inspector에서 필드 타입중에
ProviderFlag란게 있는데 설정옵션에서 업데이틀 하지 않는필드는
4개의 Flag값을 모두 False로하면 된다고 하던데요..
그렇게 해두..
   "업데이트나 새로고치는데 필요한 키 열에 대한 정보가 부족합니다"
이런 메세지가 나옵니다.
원인이 무엇인지 모르겠내요..
그리고 또한가지는
  AdoQuery에서 쿼리문으로 자료 입력시 다른건 정상적으로 되는데..
  문자열의 길이가 0인값을 넣으면 에러가 나오거든요..
  Ex) Sql.Add(' Insert Into a(a1, a2) Values(:a1, :a2)
      Parameters.ParamByName('a1').Value := 'a';
      Parameters.ParamByName('a2').Value := ' ';
      ExecSql;
    이렇게하면 이상이 없습니다..
     그런데..
       Sql.Add(' Insert Into a(a1, a2) Values(:a1, :a2)
      Parameters.ParamByName('a1').Value := 'a';
      Parameters.ParamByName('a2').Value := ''; <===이것(문자열 길이가 0임)
      ExecSql;
    이러면 이부분에서 에러가 나오더군요...

  공백을 넣어두 에러는 나오지 않는데 왜그런지 아시는분 꼭
  가르쳐주세요!!

  좋은 하루 되세요...
0  COMMENTS