예를 들자면 아래와 같은 SQL 문장을 쓴다면.
만일 Lock 이 걸려 버리면. DB 커넥트를 그냥 새로 하여 재작업을 하려 합니다.
SQL := 'UPDATE temp_ksy set kkk=''T4'' where kkk=''T9'' ';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(SQL);
Query1.EXECSQL;
-----이작업을 해서 다시 SQL 돌릴려구여--
DataBase1.Close;
DataBase1.Open;
----------------------------------------
근데 ..쩝 Query1.EXECSQL; 여기에서 걸려서 안넘어 가더라구요..
고민끝에 .. 타이머를 줘서 10초정도로 체크하려 하는데..
타이머역시 안돌아가여..
좋은 방법없나요?... 아무리 생각해도 안돼네 그려..
질문: Query1.EXECSQL 여기서 걸려버릴때도.. 다른 작업할수 있는방법 좀..
아니면 SQL 컴퍼넌트중에 time Request 할수 있는 방법이라도..
끝까지 읽어 주셔서 감사합니다.
이럴경우 각 function마다 thread를 주어서 돌리면 타이머가 작동을 하기도 하지요
그리고 난 다음에 작업을 해주시면 되겠지요...
또, 궁금한 것이 도데체 무슨 작업을 하길래 DB에 locking이 10초 가까이
걸리는지 궁금하네요...
그렇게 까지 걸리는 경우는 드물거든요...
그리고 locking이 걸리더라도 기다렸다가 돌아가는것이 낫지 않는지 모르겠습니다
수고하세요...
아니면 실패할 경우를 생각해서
Query1.EXECSQL;
에다가 에러 핸들링을 해주시면 됩니다...
타임아웃에 걸려서 에러로 나가떨어지는 경우도 있으니까요...
안녕히계세요...
바부팅 wrote:
>
> 예를 들자면 아래와 같은 SQL 문장을 쓴다면.
> 만일 Lock 이 걸려 버리면. DB 커넥트를 그냥 새로 하여 재작업을 하려 합니다.
>
> SQL := 'UPDATE temp_ksy set kkk=''T4'' where kkk=''T9'' ';
>
> Query1.Close;
> Query1.SQL.Clear;
> Query1.SQL.Add(SQL);
> Query1.EXECSQL;
>
> -----이작업을 해서 다시 SQL 돌릴려구여--
> DataBase1.Close;
> DataBase1.Open;
> ----------------------------------------
>
> 근데 ..쩝 Query1.EXECSQL; 여기에서 걸려서 안넘어 가더라구요..
>
> 고민끝에 .. 타이머를 줘서 10초정도로 체크하려 하는데..
> 타이머역시 안돌아가여..
>
> 좋은 방법없나요?... 아무리 생각해도 안돼네 그려..
>
> 질문: Query1.EXECSQL 여기서 걸려버릴때도.. 다른 작업할수 있는방법 좀..
> 아니면 SQL 컴퍼넌트중에 time Request 할수 있는 방법이라도..
>
> 끝까지 읽어 주셔서 감사합니다.
>
>
>
>