Q&A

  • invalid variant type conversion 에러가..
테이블에 인서트하는 프로시져입니다. 그런데 변수 타입을 변환할수 없다는 에러가 생깁니다. 어떻게 된건지 알수가 없습니다. 넘겨주는 값은 다 스트링인데 어디서 변수를 변환할수 없다는 건지... 쩝...



파라독스 디비로 하고 있는데요. 각 필드의 타입은 전부 알파입니다. 이 에러가 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;



1  COMMENTS
  • Profile
    방문현 2000.11.17 07:16
    volf wrote:

    > 테이블에 인서트하는 프로시져입니다. 그런데 변수 타입을 변환할수 없다는 에러가 생깁니다. 어떻게 된건지 알수가 없습니다. 넘겨주는 값은 다 스트링인데 어디서 변수를 변환할수 없다는 건지... 쩝...

    >

    > 파라독스 디비로 하고 있는데요. 각 필드의 타입은 전부 알파입니다. 이 에러가 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이라는 문자열이 포함된 문자열을 찾는 것이니까요....