필드가 4개가 있습니다.
그중 3번 필드에 디폴트로 0을 주고요.
한번 버튼클릭시 +1 씩되다가 5가되면 메세지 출력하구 0으로 리셋되게 하구 잇습니다.
그런데 여기서 문제가 발생해요
3번 필드에 1,2,3 이렇게 차곡차곡 쌓여야 하는데 1은 들어갑니다.
근데 그후로도 계속 변화없이 1로 계속되네요...
테이블을 검색해서 레코드를 찾고 레코드의 한 필드값만 수정하는 것좀 가름켜 주세요
query2.edit;
.....
ss:=QUERY2.fieldByname('P').Asinteger;
num:=ss+1;
QUERY2.fieldByname('P').Asinteger:=num;
이런식으루 전 하구 있는데요 잘 안되네요..
뭐가 잘못 됐는지 모르겟네요 ㅡ.ㅡ;;
조언을 해주세여 님들아 예제까지 해주심 더 고맙고요 ^^;;
> 필드가 4개가 있습니다.
> 그중 3번 필드에 디폴트로 0을 주고요.
> 한번 버튼클릭시 +1 씩되다가 5가되면 메세지 출력하구 0으로 리셋되게 하구 잇습니다.
> 그런데 여기서 문제가 발생해요
> 3번 필드에 1,2,3 이렇게 차곡차곡 쌓여야 하는데 1은 들어갑니다.
> 근데 그후로도 계속 변화없이 1로 계속되네요...
> 테이블을 검색해서 레코드를 찾고 레코드의 한 필드값만 수정하는 것좀 가름켜 주세요
>
> query2.edit;
> .....
>
> ss:=QUERY2.fieldByname('P').Asinteger;
> num:=ss+1;
> QUERY2.fieldByname('P').Asinteger:=num;
>
> 이런식으루 전 하구 있는데요 잘 안되네요..
> 뭐가 잘못 됐는지 모르겟네요 ㅡ.ㅡ;;
> 조언을 해주세여 님들아 예제까지 해주심 더 고맙고요 ^^;;
>
초보 hobakpa
음 db에서 자동증가 필드가 지원됩니다. 예를 들어 파라독스는 필드타입을 + 기호로 합니다. 디비가 어느 종류인지를 확실하게 몰라서 해당 디비의 필드타입을 찾아 보시면
자동증가 필드가 있을겁니다.
다른방법은 코딩으로 하시면 예를 들어 쿼리의 state가 insert때 증가 시키는 루틴을 돌리든지 방법은 여러가지있습니다.
with query1 do
begin
sql.close;
sql.clear;
sql.add('select max(p) pp from table명');
sql.open;
ss := fieldbyname('pp').asString + 1;
end;
위 루틴이 돌면 insert가 될 루틴에
insert into table(필드1,필드2, p)
values('필드1이 들어갈거','필드2이 들어갈거',:p)
query1.parambyname('p').asstring := ss;
execsql;
ss를 대입하면 될거 같습니다. 좀더 확실한 방법은 아래 게시판에서 자동증가나 일련번호로 검색을 하시면 고수님들의 노화우를 느낄수 있습니다.
제가 제시하는건 단지 힌트입니다. 도움이 되셨으면 합니다.