Q&A

  • 데이타베이스 업데이트 질문이요...(고수초빙)
아래는 제가하는 거 소스인데여.. 트라이 문이 전혀 안됩니다.

에러는안나는데 디비에 안들어가지네여..고수님들의 조언 부탁드려요

웹모듈에서 파라미터값들을 쿼리로 받아서 레코드중에 아이피가 동일한것이 있으면 업데이트 시키고 없으면 그냥 인설트 시키는 겁니다.

----------------------------------------------------

try

with Query1 do begin

close;

SQL.Clear;

SQL.add('select userIP,version from updateP.dbf');

SQL.add('where userIP =:P1');

ParamByName('P1').asString := UserIP;

open;



if EOF then // 만약에 레코드에 같은 IP 가없으면

begin

query1.Open;

with Request.QueryFields do begin

with Query1 do begin

SQL.Clear ;

SQL.Add('insert into updateP.dbf');

SQL.Add('values (:userIP,:USERNAME,:version,:UpdateTime,:Active)');

parambyname('userIP').AsString := Request.QueryFields.Values['userIP'];

parambyname('USERNAME').AsString := Request.QueryFields.Values['USERNAME'];

parambyname('version').AsString := Request.QueryFields.Values['version'];

parambyname('UpdateTime').AsString := Request.QueryFields.Values['UpdateTime'];

parambyname('Active').AsString := Request.QueryFields.Values['Active'];

ExecSQL;

Response.Content := 'insert 성공';

end;

end;

end



else // 레코드에 IP 가있으면 업데이트시킨다.

begin

query1.OpenDatabase;

with Request.QueryFields do begin

with Query1 do begin

SQL.Clear ;

SQL.Add('update updateP.dbf');

SQL.Add('set USERNAME := USERNAME,version := version,');

SQL.Add('UpdateTime:=UpdateTime,Active :=Active');

SQL.Add('where userIP := userip ');

Prepare;

parambyname('USERNAME').AsString := Request.QueryFields.Values['USERNAME'];

parambyname('version').AsString := Request.QueryFields.Values['version'];

parambyname('UpdateTime').AsString := Request.QueryFields.Values['UpdateTime'];

parambyname('Active').AsString := Request.QueryFields.Values['Active'];

ExecSQL;

Response.Content := '업데이트성공';

end;

end;

end;

end;

except

Response.Content := '실패....';

end;

end;

0  COMMENTS