아직 안 주무시죠? 저도 아직 안자고 있습니다.. ^^
아래 두분께서 도와 주신대로 코딩을 했습니다만 조금 부족한 부분이 있어서 재차 질문 드립니다.
procedure TFrmmain.TB_UClick(Sender: TObject); // insert , update query
begin
value_chk; // 필요 충분값 검사
if pagecontrol1.ActivePage = tabsheet1 then // 사외 방문자
begin
with query1 do
begin
try
close;
sql.Clear;
sql.Add(' update io_schedule set stat ="1" ');
sql.Add(' where in_date = :indate ');
sql.Add(' and seq = :seq ');
sql.Add(' and vendcd = :vendcd ');
parambyname('in_date').AsString := dbgrid1.Fields[0].asstring;
parambyname('vendcd').AsString := dbgrid1.Fields[1].AsString;
parambyname('seq').AsString := dbgrid1.Fields[6].AsString;
execsql;
except
if isempty then
begin
showmessage('자료가 수정 되지 않았습니다 . 자료를 확인해 주십시요'); //===> 요기 요부분
exit;
end;
end;
showmessage('자료가 정상적으로 추가 되었습니다'); // 발생되는 message
end;
end;
위의 코드에서 isempth 시 발생되는 showmessage 가 보이네요..
update 문에서는 execsql로 open 을 대신 실행한다고 들었는데 이부분이 아닌지요? 위에서 변수 값으로 받을 값들은 seq, in_date,vendcd 3개중에 틀린 부분이 있지 않나 싶습니다.. dbgrid 에서 뿌려 주는 값을 각각의 필드 순으로 받아서(in_date 0번, vendcd 2번, seq를 7번째에 필드(dbgrid 는 첫번째 필드를 0번으로 표현하는 것이 맞지요?)로 받는데 값이 안 넘어 가네요.. db상에서의 query 는 잘 되는듯 한데.. 소스 상에 문제가 혹시 있나요? 고언을 바랍니다..
참고로 위의 try except 문을 삭제 하면 access violation error 이 뜨네요.. 부탁 드립니다..
> 아직 안 주무시죠? 저도 아직 안자고 있습니다.. ^^
> 아래 두분께서 도와 주신대로 코딩을 했습니다만 조금 부족한 부분이 있어서 재차 질문 드립니다.
>
> procedure TFrmmain.TB_UClick(Sender: TObject); // insert , update query
> begin
> value_chk; // 필요 충분값 검사
> if pagecontrol1.ActivePage = tabsheet1 then // 사외 방문자
> begin
> with query1 do
> begin
> try
> close;
> sql.Clear;
> sql.Add(' update io_schedule set stat ="1" ');
> sql.Add(' where in_date = :indate ');
> sql.Add(' and seq = :seq ');
> sql.Add(' and vendcd = :vendcd ');
> parambyname('in_date').AsString := dbgrid1.Fields[0].asstring;
> parambyname('vendcd').AsString := dbgrid1.Fields[1].AsString;
> parambyname('seq').AsString := dbgrid1.Fields[6].AsString;
> execsql;
> except
> if isempty then
> begin
> showmessage('자료가 수정 되지 않았습니다 . 자료를 확인해 주십시요'); //===> 요기 요부분
> exit;
> end;
>
> end;
> showmessage('자료가 정상적으로 추가 되었습니다'); // 발생되는 message
> end;
> end;
>
> 위의 코드에서 isempth 시 발생되는 showmessage 가 보이네요..
> update 문에서는 execsql로 open 을 대신 실행한다고 들었는데 이부분이 아닌지요? 위에서 변수 값으로 받을 값들은 seq, in_date,vendcd 3개중에 틀린 부분이 있지 않나 싶습니다.. dbgrid 에서 뿌려 주는 값을 각각의 필드 순으로 받아서(in_date 0번, vendcd 2번, seq를 7번째에 필드(dbgrid 는 첫번째 필드를 0번으로 표현하는 것이 맞지요?)로 받는데 값이 안 넘어 가네요.. db상에서의 query 는 잘 되는듯 한데.. 소스 상에 문제가 혹시 있나요? 고언을 바랍니다..
> 참고로 위의 try except 문을 삭제 하면 access violation error 이 뜨네요.. 부탁 드립니다..
parambyname('in_date').AsString ---> ParamByName('indate').AsString