디비는 파라독스로 만들었구요. lose필드의 타입은 alpha 입니다. lose필드의 값을 읽어서 정수형으로 바꾸어서 다시 스트링으로 바꾸어서 저장하려고 하는데 제가 볼때는 이 프로시져에 에러가 없어야 하는데 좀 바주세요.. 아니면 lose필드를 number형으로 바꾸어서 실행이 되는 쿼리도 좋구요.. 아무리 보아도 작동이 되는 쿼리인데...
procedure Tform1.lose(id:string);
var
lose:integer;
begin
with query1 do begin
close;
sql.clear;
sql.add('select * from connuser ');
sql.add('where id = :f1 ');
parambyname('f1').asstring:=id;
if prepared = false then prepare;
end;
query1.open;
lose:=strtoint(query1.fieldbyname('lose').value);
inc(lose);
with query1 do begin
close;
sql.clear;
sql.add('update connuser ');
sql.add('set lose = :f1 ');
sql.add('where id = :f2');
parambyname('f1').asstring:=inttostr(lose);
parambyname('f2').asstring:=id;
if prepared = false then prepare;
end;
query1.ExecSQL;
query1.Close;
table2.Refresh;
end;
> 디비는 파라독스로 만들었구요. lose필드의 타입은 alpha 입니다. lose필드의 값을 읽어서 정수형으로 바꾸어서 다시 스트링으로 바꾸어서 저장하려고 하는데 제가 볼때는 이 프로시져에 에러가 없어야 하는데 좀 바주세요.. 아니면 lose필드를 number형으로 바꾸어서 실행이 되는 쿼리도 좋구요.. 아무리 보아도 작동이 되는 쿼리인데...
>
> procedure Tform1.lose(id:string);
> var
> lose:integer;
> begin
> with query1 do begin
> close;
> sql.clear;
> sql.add('select * from connuser ');
> sql.add('where id = :f1 ');
> parambyname('f1').asstring:=id;
> if prepared = false then prepare;
> end;
> query1.open;
> lose:=strtoint(query1.fieldbyname('lose').value);
> inc(lose);
> with query1 do begin
> close;
> sql.clear;
> sql.add('update connuser ');
> sql.add('set lose = :f1 ');
> sql.add('where id = :f2');
> parambyname('f1').asstring:=inttostr(lose);
> parambyname('f2').asstring:=id;
> if prepared = false then prepare;
> end;
> query1.ExecSQL;
> query1.Close;
> table2.Refresh;
> end;
안녕하세요. 까마귀입니다.
parameter로 들어가는 id 라는 값은 어디서 온겁니까?
변수 선언도 않되어 있던데...
정확히 어디서 에러가 걸렸는지 말씀해 주세요.
위대한 단군혼이 살아있는 나라.... 대한민국.