Q&A

  • 델파이 초보의 절박한 질문입니다.
델파이 초보로서 질문 드립니다.

현재 시스템은 서버 한대에 네트워크로 PC가 5대에서 10대정도 연결되 있는

시스템입니다. 서버는 NT2000에 SQL 7.0이 깔려 있구요

PC는 Window98이 설치 되있습니다.

각 PC에 깔린 프로그램에서 수시로 데이타를 입력하면 서버에 저장이 되고

저장된 데이타를 검색할수 있는 기능도 프로그램에는 있거든요

근데 2군데 이상에서 동시에 입력하면 일련번호를 프라이머리 키로 설정해 놓아서

한 PC에는 다른 사람이 사용중인 레코드니 편집할수 없다는 메시지가 나오는 겁니다.

그런 경우를 방지하기 위해서 그 테이블에 프라이머리키를 없앴걸랑요.

그니까 일련번호가 중복되긴 해도 동시에 2건이상이 입력 가능하더라구요

하지만 문제는 일정기간이 지나면 갑자기 다음과 같은 현상이 나타납니다.



현상: 어느 순간부터 모래시계가 한 PC에서 시작되면서 나머지 PC도 영향이

미치는거죠 모래시계가 무한정 떠 있어서 작업을 못하는 겁니다.

어느 한 PC만 키고 작업하면 괜찮아도 다른 PC를 키고 프로그램 실행만

시키면 위와 같은 현상때문에 한 PC에서의 작업밖에 못하게 됩니다.



위와같은 문제의 해결방법을 하나 찾은건 데이타가 저장되는 테이블이 있는데요

거기에 아직까지 저장되있는 데이타를 모두 삭제하고 빈 테이블로 만든후

프로그램을 실행시키면 또 문제없이 잘 되는 겁니다.

근데 원인을 알고 데이타 삭제없이 문제를 해결하고 싶은데 도저히 델파이초보로서는

모르겠네요.

제가 서두에 프라이머리키 없앤 이야기를 한건 혹시 그것때문 아닐까 하는

추측때문입니다.

참고로 저장되는 데이타 건수는 하루에 1000~2000건입니다.



써놓고 보니까 이해가 잘 안될수도 있지만 여기까지 읽어주신분 감사드리고

도움이 안되도 좋으니 하나라도 짐작되시면 답변 해주시기 바랍니다.

감사합니다.



4  COMMENTS
  • Profile
    정용진 2001.04.23 18:28
    글이 잘 이해가 안되지만, 그냥 허접답변임다.

    제 생각에 자료를 등록할때 프라이머리키를 삭제하셨다는데.

    그 프라이머리키가 무엇인지가 궁금하네요. 그냥 관리용 Index번호 정도라면

    그러니까... 년도에 월과 일을 붙여서 나버지 순번...20010423001이런것이라면

    등록되는 시점에서 현제 등록할 값의 프라이머리키가 이미 등록이 되었는지를

    검사해서 이미등록이 되었다면 인덱스값을 증가하여 또검사하고...등록이 되질

    않는것을 찾기위해서여... 그렇게 해서 등록을 하면 괜찮을 것 같은데.

    키를 사용하지 않는다면 먼저 문제가 될것이 속도 문제도 무시못하고,

    자료를 처리함에 있어서 상당히 불편할 걸로 생각되네요.

    그리고 정확하게는 모르겠지만, sql서버 자체의 문제도 생각되어지는데요?

    키가 없이 데이터가 날아오면 자체 스키마처리에서 문제가 발생되어

    그런경우가 발생하지 않을까 제....추측임다.^^;



    등록전에..항상 등록할 자료가 이미 등록되었는지를 검사해 주시는게...아무래도

    순서가 아닐까 합니다.



    허접 답변이었음다.



    궁금이 wrote:

    > 델파이 초보로서 질문 드립니다.

    > 현재 시스템은 서버 한대에 네트워크로 PC가 5대에서 10대정도 연결되 있는

    > 시스템입니다. 서버는 NT2000에 SQL 7.0이 깔려 있구요

    > PC는 Window98이 설치 되있습니다.

    > 각 PC에 깔린 프로그램에서 수시로 데이타를 입력하면 서버에 저장이 되고

    > 저장된 데이타를 검색할수 있는 기능도 프로그램에는 있거든요

    > 근데 2군데 이상에서 동시에 입력하면 일련번호를 프라이머리 키로 설정해 놓아서

    > 한 PC에는 다른 사람이 사용중인 레코드니 편집할수 없다는 메시지가 나오는 겁니다.

    > 그런 경우를 방지하기 위해서 그 테이블에 프라이머리키를 없앴걸랑요.

    > 그니까 일련번호가 중복되긴 해도 동시에 2건이상이 입력 가능하더라구요

    > 하지만 문제는 일정기간이 지나면 갑자기 다음과 같은 현상이 나타납니다.

    >

    > 현상: 어느 순간부터 모래시계가 한 PC에서 시작되면서 나머지 PC도 영향이

    > 미치는거죠 모래시계가 무한정 떠 있어서 작업을 못하는 겁니다.

    > 어느 한 PC만 키고 작업하면 괜찮아도 다른 PC를 키고 프로그램 실행만

    > 시키면 위와 같은 현상때문에 한 PC에서의 작업밖에 못하게 됩니다.

    >

    > 위와같은 문제의 해결방법을 하나 찾은건 데이타가 저장되는 테이블이 있는데요

    > 거기에 아직까지 저장되있는 데이타를 모두 삭제하고 빈 테이블로 만든후

    > 프로그램을 실행시키면 또 문제없이 잘 되는 겁니다.

    > 근데 원인을 알고 데이타 삭제없이 문제를 해결하고 싶은데 도저히 델파이초보로서는

    > 모르겠네요.

    > 제가 서두에 프라이머리키 없앤 이야기를 한건 혹시 그것때문 아닐까 하는

    > 추측때문입니다.

    > 참고로 저장되는 데이타 건수는 하루에 1000~2000건입니다.

    >

    > 써놓고 보니까 이해가 잘 안될수도 있지만 여기까지 읽어주신분 감사드리고

    > 도움이 안되도 좋으니 하나라도 짐작되시면 답변 해주시기 바랍니다.

    > 감사합니다.

    >

  • Profile
    궁금이 2001.04.24 18:10
    답변 감사드립니다.

    우선 프라이머리키는 관리용 Index번호입니다.

    그냥 하나씩 데이타가 입력될때마다 +1씩 증가되는 식입니다.

    만약 프라이머리키가 없어서 그런 문제가 발생했다면

    Index번호에 프라이머리키를 주는대신 2군데 이상에서 동시에 자료를 입력하더라도

    에라없이 입력가능하게 하는 방법 혹시 알고계시다면 조언 부탁드립니다.

    (좀 구체적으로요)

    바쁘실텐데 이렇게 다시 질문 드리게 되어 죄송합니다.



    정용진 wrote:

    > 글이 잘 이해가 안되지만, 그냥 허접답변임다.

    > 제 생각에 자료를 등록할때 프라이머리키를 삭제하셨다는데.

    > 그 프라이머리키가 무엇인지가 궁금하네요. 그냥 관리용 Index번호 정도라면

    > 그러니까... 년도에 월과 일을 붙여서 나버지 순번...20010423001이런것이라면

    > 등록되는 시점에서 현제 등록할 값의 프라이머리키가 이미 등록이 되었는지를

    > 검사해서 이미등록이 되었다면 인덱스값을 증가하여 또검사하고...등록이 되질

    > 않는것을 찾기위해서여... 그렇게 해서 등록을 하면 괜찮을 것 같은데.

    > 키를 사용하지 않는다면 먼저 문제가 될것이 속도 문제도 무시못하고,

    > 자료를 처리함에 있어서 상당히 불편할 걸로 생각되네요.

    > 그리고 정확하게는 모르겠지만, sql서버 자체의 문제도 생각되어지는데요?

    > 키가 없이 데이터가 날아오면 자체 스키마처리에서 문제가 발생되어

    > 그런경우가 발생하지 않을까 제....추측임다.^^;

    >

    > 등록전에..항상 등록할 자료가 이미 등록되었는지를 검사해 주시는게...아무래도

    > 순서가 아닐까 합니다.

    >

    > 허접 답변이었음다.

    >

    > 궁금이 wrote:

    > > 델파이 초보로서 질문 드립니다.

    > > 현재 시스템은 서버 한대에 네트워크로 PC가 5대에서 10대정도 연결되 있는

    > > 시스템입니다. 서버는 NT2000에 SQL 7.0이 깔려 있구요

    > > PC는 Window98이 설치 되있습니다.

    > > 각 PC에 깔린 프로그램에서 수시로 데이타를 입력하면 서버에 저장이 되고

    > > 저장된 데이타를 검색할수 있는 기능도 프로그램에는 있거든요

    > > 근데 2군데 이상에서 동시에 입력하면 일련번호를 프라이머리 키로 설정해 놓아서

    > > 한 PC에는 다른 사람이 사용중인 레코드니 편집할수 없다는 메시지가 나오는 겁니다.

    > > 그런 경우를 방지하기 위해서 그 테이블에 프라이머리키를 없앴걸랑요.

    > > 그니까 일련번호가 중복되긴 해도 동시에 2건이상이 입력 가능하더라구요

    > > 하지만 문제는 일정기간이 지나면 갑자기 다음과 같은 현상이 나타납니다.

    > >

    > > 현상: 어느 순간부터 모래시계가 한 PC에서 시작되면서 나머지 PC도 영향이

    > > 미치는거죠 모래시계가 무한정 떠 있어서 작업을 못하는 겁니다.

    > > 어느 한 PC만 키고 작업하면 괜찮아도 다른 PC를 키고 프로그램 실행만

    > > 시키면 위와 같은 현상때문에 한 PC에서의 작업밖에 못하게 됩니다.

    > >

    > > 위와같은 문제의 해결방법을 하나 찾은건 데이타가 저장되는 테이블이 있는데요

    > > 거기에 아직까지 저장되있는 데이타를 모두 삭제하고 빈 테이블로 만든후

    > > 프로그램을 실행시키면 또 문제없이 잘 되는 겁니다.

    > > 근데 원인을 알고 데이타 삭제없이 문제를 해결하고 싶은데 도저히 델파이초보로서는

    > > 모르겠네요.

    > > 제가 서두에 프라이머리키 없앤 이야기를 한건 혹시 그것때문 아닐까 하는

    > > 추측때문입니다.

    > > 참고로 저장되는 데이타 건수는 하루에 1000~2000건입니다.

    > >

    > > 써놓고 보니까 이해가 잘 안될수도 있지만 여기까지 읽어주신분 감사드리고

    > > 도움이 안되도 좋으니 하나라도 짐작되시면 답변 해주시기 바랍니다.

    > > 감사합니다.

    > >

  • Profile
    정용진 2001.04.25 00:35
    DATABASE쪽으론 하두 오래되어서 기억이 날련지 모르겠지만, 대충 허접답변 드리자면요... 예를 들면 좋겠지만,

    지금 그런 상황이 아니라서요...미안요 ^^;

    그러니깐...... 자료가 post되는 시점이나 commit되는 시점.... 아무래도 db가 sql서버이니까..commit이 되는시점이겠네요.

    그때....findkey인가하는거 있죠...현재 설정되어 있는 키로 레코드 찾는거..

    그걸루...



    while findkey([등록할 프라이머리 인덱스]) do begin

    등록할 프라이머리 인덱스:= 등록할 프라이머리 인덱스 + 1;

    end;

    이렇게 하면 등록되지 않은 인덱스가 나오면 루프를 빠져나올꺼잖아요.. 그쵸..틀렸다면 비슷하니까.. 고쳐보세요. ^^;

    글구나서 commit하면 될꺼 같은데...

    허접답변이었음다.

    궁금하시면 멜 주시구.... love7579love@yahoo.co.kr





    궁금이 wrote:

    > 답변 감사드립니다.

    > 우선 프라이머리키는 관리용 Index번호입니다.

    > 그냥 하나씩 데이타가 입력될때마다 +1씩 증가되는 식입니다.

    > 만약 프라이머리키가 없어서 그런 문제가 발생했다면

    > Index번호에 프라이머리키를 주는대신 2군데 이상에서 동시에 자료를 입력하더라도

    > 에라없이 입력가능하게 하는 방법 혹시 알고계시다면 조언 부탁드립니다.

    > (좀 구체적으로요)

    > 바쁘실텐데 이렇게 다시 질문 드리게 되어 죄송합니다.

    >

    > 정용진 wrote:

    > > 글이 잘 이해가 안되지만, 그냥 허접답변임다.

    > > 제 생각에 자료를 등록할때 프라이머리키를 삭제하셨다는데.

    > > 그 프라이머리키가 무엇인지가 궁금하네요. 그냥 관리용 Index번호 정도라면

    > > 그러니까... 년도에 월과 일을 붙여서 나버지 순번...20010423001이런것이라면

    > > 등록되는 시점에서 현제 등록할 값의 프라이머리키가 이미 등록이 되었는지를

    > > 검사해서 이미등록이 되었다면 인덱스값을 증가하여 또검사하고...등록이 되질

    > > 않는것을 찾기위해서여... 그렇게 해서 등록을 하면 괜찮을 것 같은데.

    > > 키를 사용하지 않는다면 먼저 문제가 될것이 속도 문제도 무시못하고,

    > > 자료를 처리함에 있어서 상당히 불편할 걸로 생각되네요.

    > > 그리고 정확하게는 모르겠지만, sql서버 자체의 문제도 생각되어지는데요?

    > > 키가 없이 데이터가 날아오면 자체 스키마처리에서 문제가 발생되어

    > > 그런경우가 발생하지 않을까 제....추측임다.^^;

    > >

    > > 등록전에..항상 등록할 자료가 이미 등록되었는지를 검사해 주시는게...아무래도

    > > 순서가 아닐까 합니다.

    > >

    > > 허접 답변이었음다.

    > >

    > > 궁금이 wrote:

    > > > 델파이 초보로서 질문 드립니다.

    > > > 현재 시스템은 서버 한대에 네트워크로 PC가 5대에서 10대정도 연결되 있는

    > > > 시스템입니다. 서버는 NT2000에 SQL 7.0이 깔려 있구요

    > > > PC는 Window98이 설치 되있습니다.

    > > > 각 PC에 깔린 프로그램에서 수시로 데이타를 입력하면 서버에 저장이 되고

    > > > 저장된 데이타를 검색할수 있는 기능도 프로그램에는 있거든요

    > > > 근데 2군데 이상에서 동시에 입력하면 일련번호를 프라이머리 키로 설정해 놓아서

    > > > 한 PC에는 다른 사람이 사용중인 레코드니 편집할수 없다는 메시지가 나오는 겁니다.

    > > > 그런 경우를 방지하기 위해서 그 테이블에 프라이머리키를 없앴걸랑요.

    > > > 그니까 일련번호가 중복되긴 해도 동시에 2건이상이 입력 가능하더라구요

    > > > 하지만 문제는 일정기간이 지나면 갑자기 다음과 같은 현상이 나타납니다.

    > > >

    > > > 현상: 어느 순간부터 모래시계가 한 PC에서 시작되면서 나머지 PC도 영향이

    > > > 미치는거죠 모래시계가 무한정 떠 있어서 작업을 못하는 겁니다.

    > > > 어느 한 PC만 키고 작업하면 괜찮아도 다른 PC를 키고 프로그램 실행만

    > > > 시키면 위와 같은 현상때문에 한 PC에서의 작업밖에 못하게 됩니다.

    > > >

    > > > 위와같은 문제의 해결방법을 하나 찾은건 데이타가 저장되는 테이블이 있는데요

    > > > 거기에 아직까지 저장되있는 데이타를 모두 삭제하고 빈 테이블로 만든후

    > > > 프로그램을 실행시키면 또 문제없이 잘 되는 겁니다.

    > > > 근데 원인을 알고 데이타 삭제없이 문제를 해결하고 싶은데 도저히 델파이초보로서는

    > > > 모르겠네요.

    > > > 제가 서두에 프라이머리키 없앤 이야기를 한건 혹시 그것때문 아닐까 하는

    > > > 추측때문입니다.

    > > > 참고로 저장되는 데이타 건수는 하루에 1000~2000건입니다.

    > > >

    > > > 써놓고 보니까 이해가 잘 안될수도 있지만 여기까지 읽어주신분 감사드리고

    > > > 도움이 안되도 좋으니 하나라도 짐작되시면 답변 해주시기 바랍니다.

    > > > 감사합니다.

    > > >

  • Profile
    궁금이 2001.04.26 04:52
    바쁘실텐데 이렇게 답변 주셔서 정말 고맙습니다.

    정용진님 말씀대로 한번 소스를 고쳐보겠습니다.

    잘될지는 모르지만요.

    아뭏든 열심히 해보고 나중에 결과 말씀드릴게요.

    건강하세요





    정용진 wrote:

    > DATABASE쪽으론 하두 오래되어서 기억이 날련지 모르겠지만, 대충 허접답변 드리자면요... 예를 들면 좋겠지만,

    > 지금 그런 상황이 아니라서요...미안요 ^^;

    > 그러니깐...... 자료가 post되는 시점이나 commit되는 시점.... 아무래도 db가 sql서버이니까..commit이 되는시점이겠네요.

    > 그때....findkey인가하는거 있죠...현재 설정되어 있는 키로 레코드 찾는거..

    > 그걸루...

    >

    > while findkey([등록할 프라이머리 인덱스]) do begin

    > 등록할 프라이머리 인덱스:= 등록할 프라이머리 인덱스 + 1;

    > end;

    > 이렇게 하면 등록되지 않은 인덱스가 나오면 루프를 빠져나올꺼잖아요.. 그쵸..틀렸다면 비슷하니까.. 고쳐보세요. ^^;

    > 글구나서 commit하면 될꺼 같은데...

    > 허접답변이었음다.

    > 궁금하시면 멜 주시구.... love7579love@yahoo.co.kr

    >

    >

    > 궁금이 wrote:

    > > 답변 감사드립니다.

    > > 우선 프라이머리키는 관리용 Index번호입니다.

    > > 그냥 하나씩 데이타가 입력될때마다 +1씩 증가되는 식입니다.

    > > 만약 프라이머리키가 없어서 그런 문제가 발생했다면

    > > Index번호에 프라이머리키를 주는대신 2군데 이상에서 동시에 자료를 입력하더라도

    > > 에라없이 입력가능하게 하는 방법 혹시 알고계시다면 조언 부탁드립니다.

    > > (좀 구체적으로요)

    > > 바쁘실텐데 이렇게 다시 질문 드리게 되어 죄송합니다.

    > >

    > > 정용진 wrote:

    > > > 글이 잘 이해가 안되지만, 그냥 허접답변임다.

    > > > 제 생각에 자료를 등록할때 프라이머리키를 삭제하셨다는데.

    > > > 그 프라이머리키가 무엇인지가 궁금하네요. 그냥 관리용 Index번호 정도라면

    > > > 그러니까... 년도에 월과 일을 붙여서 나버지 순번...20010423001이런것이라면

    > > > 등록되는 시점에서 현제 등록할 값의 프라이머리키가 이미 등록이 되었는지를

    > > > 검사해서 이미등록이 되었다면 인덱스값을 증가하여 또검사하고...등록이 되질

    > > > 않는것을 찾기위해서여... 그렇게 해서 등록을 하면 괜찮을 것 같은데.

    > > > 키를 사용하지 않는다면 먼저 문제가 될것이 속도 문제도 무시못하고,

    > > > 자료를 처리함에 있어서 상당히 불편할 걸로 생각되네요.

    > > > 그리고 정확하게는 모르겠지만, sql서버 자체의 문제도 생각되어지는데요?

    > > > 키가 없이 데이터가 날아오면 자체 스키마처리에서 문제가 발생되어

    > > > 그런경우가 발생하지 않을까 제....추측임다.^^;

    > > >

    > > > 등록전에..항상 등록할 자료가 이미 등록되었는지를 검사해 주시는게...아무래도

    > > > 순서가 아닐까 합니다.

    > > >

    > > > 허접 답변이었음다.

    > > >

    > > > 궁금이 wrote:

    > > > > 델파이 초보로서 질문 드립니다.

    > > > > 현재 시스템은 서버 한대에 네트워크로 PC가 5대에서 10대정도 연결되 있는

    > > > > 시스템입니다. 서버는 NT2000에 SQL 7.0이 깔려 있구요

    > > > > PC는 Window98이 설치 되있습니다.

    > > > > 각 PC에 깔린 프로그램에서 수시로 데이타를 입력하면 서버에 저장이 되고

    > > > > 저장된 데이타를 검색할수 있는 기능도 프로그램에는 있거든요

    > > > > 근데 2군데 이상에서 동시에 입력하면 일련번호를 프라이머리 키로 설정해 놓아서

    > > > > 한 PC에는 다른 사람이 사용중인 레코드니 편집할수 없다는 메시지가 나오는 겁니다.

    > > > > 그런 경우를 방지하기 위해서 그 테이블에 프라이머리키를 없앴걸랑요.

    > > > > 그니까 일련번호가 중복되긴 해도 동시에 2건이상이 입력 가능하더라구요

    > > > > 하지만 문제는 일정기간이 지나면 갑자기 다음과 같은 현상이 나타납니다.

    > > > >

    > > > > 현상: 어느 순간부터 모래시계가 한 PC에서 시작되면서 나머지 PC도 영향이

    > > > > 미치는거죠 모래시계가 무한정 떠 있어서 작업을 못하는 겁니다.

    > > > > 어느 한 PC만 키고 작업하면 괜찮아도 다른 PC를 키고 프로그램 실행만

    > > > > 시키면 위와 같은 현상때문에 한 PC에서의 작업밖에 못하게 됩니다.

    > > > >

    > > > > 위와같은 문제의 해결방법을 하나 찾은건 데이타가 저장되는 테이블이 있는데요

    > > > > 거기에 아직까지 저장되있는 데이타를 모두 삭제하고 빈 테이블로 만든후

    > > > > 프로그램을 실행시키면 또 문제없이 잘 되는 겁니다.

    > > > > 근데 원인을 알고 데이타 삭제없이 문제를 해결하고 싶은데 도저히 델파이초보로서는

    > > > > 모르겠네요.

    > > > > 제가 서두에 프라이머리키 없앤 이야기를 한건 혹시 그것때문 아닐까 하는

    > > > > 추측때문입니다.

    > > > > 참고로 저장되는 데이타 건수는 하루에 1000~2000건입니다.

    > > > >

    > > > > 써놓고 보니까 이해가 잘 안될수도 있지만 여기까지 읽어주신분 감사드리고

    > > > > 도움이 안되도 좋으니 하나라도 짐작되시면 답변 해주시기 바랍니다.

    > > > > 감사합니다.

    > > > >