데이타베이스 application을 하나 만들었습니다.
로칼DB로 만들었는데 5대의 컴퓨터에서 하나의 db를 네트워크 드라이브를 연결해서 쓰고있습니다. 다른 문제는 없는데 두가지 문제가 있습니다.
1. 처음 프로그램을 실행하면 query의 로딩이 걸립니다. db가 용량이 커지다 보니 그 로딩시간이 많이 걸려서 불편함을 느낄정도입니다. 그런데 컴파일할때 Tquery의 active속성을 false로 하니까 로딩을 하지않는것 같고 다른 sql을 사용한 문장도 다 먹는것 같은데 혹시나 해서 그렇게 하지 못하고 있습니다. false로 두어도 상관이 없는지 상관이 있다면 어떨때 그런지 궁금합니다...부디 대답을....
2.그리고 또 한가지는 로칼DB를 연결해서 쓰니까 db파일이 저장된 컴퓨터에서는 다른컴퓨터에서 바뀌어진 내용이 시간적으로 동기화가 되는데 그 외의 컴퓨터에서는 db화일이 저장된 컴퓨터에서 바꾸면 바뀐 내용을 인식하는데 시간이 많이 걸립니다. 바로 다른컴퓨터에서 확인해보면 안바뀌어있죠. 조금 있으면 바뀌는데...
이걸 동기화시킬 방법은 없을까요....
델파이에 빠져들고 처음 만들어본겁니다..
부디 해결방법을 좀 가르쳐주세요...
> 데이타베이스 application을 하나 만들었습니다.
> 로칼DB로 만들었는데 5대의 컴퓨터에서 하나의 db를 네트워크 드라이브를 연결해서 쓰고있습니다. 다른 문제는 없는데 두가지 문제가 있습니다.
>
> 1. 처음 프로그램을 실행하면 query의 로딩이 걸립니다. db가 용량이 커지다 보니 그 로딩시간이 많이 걸려서 불편함을 느낄정도입니다. 그런데 컴파일할때 Tquery의 active속성을 false로 하니까 로딩을 하지않는것 같고 다른 sql을 사용한 문장도 다 먹는것 같은데 혹시나 해서 그렇게 하지 못하고 있습니다. false로 두어도 상관이 없는지 상관이 있다면 어떨때 그런지 궁금합니다...부디 대답을....
>
> 2.그리고 또 한가지는 로칼DB를 연결해서 쓰니까 db파일이 저장된 컴퓨터에서는 다른컴퓨터에서 바뀌어진 내용이 시간적으로 동기화가 되는데 그 외의 컴퓨터에서는 db화일이 저장된 컴퓨터에서 바꾸면 바뀐 내용을 인식하는데 시간이 많이 걸립니다. 바로 다른컴퓨터에서 확인해보면 안바뀌어있죠. 조금 있으면 바뀌는데...
> 이걸 동기화시킬 방법은 없을까요....
>
> 델파이에 빠져들고 처음 만들어본겁니다..
> 부디 해결방법을 좀 가르쳐주세요...
안녕하세요!
오현수 입니다.
답변은 아니고요
하나 제안을 드리자면, Local-DB를 공유해서 사용하시는 것은 권해드리고 싶지 않습니다.
당장은 문제가 발생하지 않는다고 하여도 동시수정등에서 문제가 발생 할 소지가 많습니다.
말씀하진 것과 같이 TQuery의 Active속성을 False로 해놓고
프로그램내에서 Open함수나 Active:=true로 하지 않으시면 실행시 DB의 내용을 당연히 읽지 않습니다.
디자인시에는 False로 해 놓으시고 프로그램 실행시 적당한 이벤트에서 Open을 하시면
Active속성이 True로 변경됩니다.(혹은 Active := true와 같이 하셔도 동일)
2번째 동기화 문제는 DBMS를 사용하시면 자동으로 해결이 됩니다.
다시 말씀드리면 Local-DB를 공유해서 사용하시는 것은 그리 좋은 방법은 아닌듯 합니다.