안녕하세요!
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;
이러면 이부분에서 에러가 나오더군요...
공백을 넣어두 에러는 나오지 않는데 왜그런지 아시는분 꼭
가르쳐주세요!!
좋은 하루 되세요...