아래는 제가하는 거 소스인데여.. 트라이 문이 전혀 안됩니다.
에러는안나는데 디비에 안들어가지네여..고수님들의 조언 부탁드려요
웹모듈에서 파라미터값들을 쿼리로 받아서 레코드중에 아이피가 동일한것이 있으면 업데이트 시키고 없으면 그냥 인설트 시키는 겁니다.
----------------------------------------------------
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;