다름이 아니오라..
몇가지 조건을 주고 검색을 해서 DBgrid에 띄었읍니다 물론 조건에 맞는 테이블만...
그런데 그리드 상에서 추가, 삽입을 하려고 하는데 값을 입력하고 저장버튼을 누르면
일단은 값이 들어갑니다 그러나 추가를 하거나 삽입을 해도 똑같이 DB의 맨마지막
줄에 레코드로 생성이 되는 것입니다..
이것은 무슨이유 때문일가요???
추가는 --- Query1.append;
삽입은 --- Query1.insert;
저장은 --- Query1.post;
Query1.active;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select * from pgood');
Query1.Execsql;
Query1.open;
이런식으로 사용하고 있읍니다...
> 다름이 아니오라..
> 몇가지 조건을 주고 검색을 해서 DBgrid에 띄었읍니다 물론 조건에 맞는 테이블만...
> 그런데 그리드 상에서 추가, 삽입을 하려고 하는데 값을 입력하고 저장버튼을 누르면
> 일단은 값이 들어갑니다 그러나 추가를 하거나 삽입을 해도 똑같이 DB의 맨마지막
> 줄에 레코드로 생성이 되는 것입니다..
>
> 이것은 무슨이유 때문일가요???
>
> 추가는 --- Query1.append;
>
> 삽입은 --- Query1.insert;
>
> 저장은 --- Query1.post;
> Query1.active;
> Query1.close;
> Query1.sql.clear;
> Query1.sql.add('select * from pgood');
> Query1.Execsql;
> Query1.open;
>
> 이런식으로 사용하고 있읍니다...
>
안녕하세요 델포이 바보감자입니다.
저두 초보지만 아는거라 답변을 이러케 올립니다.
일단 query1.post랑 active 는 안넣으셔두 되염.
쿼리에 보시면
인설트(삽입) 은. 맨 마지막 레코드에 추가가 되는거지만
업데이트(추가)는 그러면 안되죠.
그러기 위해선 키값이란게 있어야 해요
예를 들어
필드명 : 1 2 3 4
레코드값: a b c d
이러케 있을경우에. 업데이트 문에서 추가할값을 다 추가하시고 맨 마지막에
where 1 = 'a'
이러케 넣어 주시면
조건문이죠
1이란 필드에 a란 값이 들어간것만 쿼리에 적용해라.. 이런뜻입니다.
이럴경우 1이 키값이라고하죠.중복되지 않는값 (키값.) 중복된거도 있으면 그녀석레코드에도 업데이트가 될꺼니까..
그러니까 레코드 검색으로 찾기를 하셨을때.. 그리드나 텍스트에 뿌려주기전에
한 변수에다가 원본 키값을 넣어주셨다가..
조건문에다가 변수넣어주시면 되요.
where 1 = x <--x가 a값이 들어가 있는 변수.
제가 제대로 설명드렸는지 몰르겠네요..
^^ 좋은 답변이 됐는지 몰르겠군요..
꼭 도움이 되시길 바랍니다..그럼 ^^
즐 코 하세여~~~~~~~~~
언제나 비를 기다리는 바보감자가..올림.