안녕하세요..
글을 읽어 주셔서 감사합니다.
다름이 아니오라 제가 마이다스 + MTS 프로그램의 서버 클라이언트 프로그램을
만드는데 클라이언트 프로그램에서 버튼을 클릭하면 에러가 나는데 "Invalid variant operation"이 남니다 왜 그럴까여? 고수님 한수 부탁 드리겠습니다.
클라이언트 프로그램
=============================
procedure TForm1.Button1Click(Sender: TObject);
var
bMine : Boolean;
sMessage : String;
v : Variant;
begin
v := varArrayCreate([1,2],varVariant);
v[1] := myOBJ.VerifyLogin(eID.text, ePWD.text);
ShowMessage(v[1] + '님 어서오십시요');
Form2 := TForm2.Create(Self);
Visible := False;
Form2.ShowModal;
Form2.Free;
close;
end;
서버 프로그램
=============================
function TMTSModule.VerifyLogin(UserID, Passwd: OleVariant): OleVariant;
var
ID, PWD : String;
v : Variant;
f : textfile;
begin
ID := UserID;
PWD := Passwd;
assignFile(f,'d:hansdebug.txt');
rewrite(f);
writeln(f,'UserID = '+ ID);
writeln(f,'Passwd = '+ Pwd);
try
with Query1 do
begin
if Active then Close;
SQL.clear;
Writeln(f, 'open 전0');
SQL.Add(' SELECT FUS001PASSWD , FUS001USERNM');
SQL.Add(' FROM TUS001USER ');
SQL.Add(' WHERE FUS001USERID = :p1 ');
ParamByName('p1').AsString := ID;
Writeln(f, 'open 전'); <== 여기까지 나오다가 에러가 나는데 도대체
이유를 모르겠습니다.
open;
Writeln(f, 'open 후');
if EOF then
begin
v := '등록되지 않은 사용자 입니다.';
writeln(f,'등록되지 않은 사용자 입니다.');
closeFile(f);
result := v;
end
else if Fields[0].AsString <> PWD then
begin
v := '암호가 일치하지 않습니다.';
writeln(f,'암호가 일치하지 않습니다.');
closeFile(f);
result := v;
end
else
begin
v := Fields[1].AsString;
writeln(f,Fields[1].AsString);
closeFile(f);
result := v;
end;
close;
end;
SetComplete
except
begin
SetAbort;
writeln(f,'에러 발생');
closefile(F);
end;
end
end;