테이블에 인서트하는 프로시져입니다. 그런데 변수 타입을 변환할수 없다는 에러가 생깁니다. 어떻게 된건지 알수가 없습니다. 넘겨주는 값은 다 스트링인데 어디서 변수를 변환할수 없다는 건지... 쩝...
파라독스 디비로 하고 있는데요. 각 필드의 타입은 전부 알파입니다. 이 에러가 3일째 뜨고 있는데 아직도 잡지를 못하고 있습니다. 좀 도와 주세요..
procedure tform1.inputuser(id, pwd, ip, hand:string);
var
win, lose, iden:string;
hand2:integer;
begin
hand2:=strtoint(hand);
with query1 do begin
close;
sql.clear;
sql.add('select * from users');
sql.Add('where ID like :id');
parambyname('id').asstring:=id;
if prepared = false then prepare;
end;
query1.open;
iden:=query1.fieldbyname('id').value;
edit4.text:=iden;
if query1.RecordCount=0 then
begin
win='0';
lose='0';
with query1 do begin
close;
sql.clear;
sql.add('insert into users');
sql.Add('(ID, Pwd, Win, Lose)');
sql.add('values');
sql.add('(:f1, :f2, :f3, :f4)');
parambyname('f1').asstring:=id;
parambyname('f2').asstring:=pwd;
parambyname('f3').asstring:=win;
parambyname('f4').asstring:=lose;
if prepared = false then prepare;
end;
query1.ExecSQL;
loginquery(id, pwd, ip, hand);
end
else
serversocket1.socket.connections[conno].sendtext('idexi');
end;
> 테이블에 인서트하는 프로시져입니다. 그런데 변수 타입을 변환할수 없다는 에러가 생깁니다. 어떻게 된건지 알수가 없습니다. 넘겨주는 값은 다 스트링인데 어디서 변수를 변환할수 없다는 건지... 쩝...
>
> 파라독스 디비로 하고 있는데요. 각 필드의 타입은 전부 알파입니다. 이 에러가 3일째 뜨고 있는데 아직도 잡지를 못하고 있습니다. 좀 도와 주세요..
>
> procedure tform1.inputuser(id, pwd, ip, hand:string);
> var
> win, lose, iden:string;
> hand2:integer;
> begin
> hand2:=strtoint(hand);
> with query1 do begin
> close;
> sql.clear;
> sql.add('select * from users');
> sql.Add('where ID like :id'); //여기 like를 쓰시려면
> parambyname('id').asstring:=id; //(id+'%') 를 넣어 줘야 되지요
> if prepared = false then prepare;
> end;
> query1.open;
> iden:=query1.fieldbyname('id').value;
> edit4.text:=iden;
> if query1.RecordCount=0 then
> begin
> win='0';
> lose='0';
> with query1 do begin
> close;
> sql.clear;
> sql.add('insert into users');
> sql.Add('(ID, Pwd, Win, Lose)');
> sql.add('values');
> sql.add('(:f1, :f2, :f3, :f4)');
> parambyname('f1').asstring:=id;
> parambyname('f2').asstring:=pwd;
> parambyname('f3').asstring:=win;
> parambyname('f4').asstring:=lose;
> if prepared = false then prepare;
> end;
> query1.ExecSQL;
> loginquery(id, pwd, ip, hand);
> end
> else
> serversocket1.socket.connections[conno].sendtext('idexi');
> end;
>
where 절의 조건이 like라야 한다면 like kim이 아니라 like kim% 또는 %kim%등
kim이라는 문자열이 포함된 문자열을 찾는 것이니까요....