2016-08-12 3 views
1

에서 관련 데이터베이스 파일을 전환하기 위해 수행해야하는 무엇 간다 : 나는 연결에 대한 데이터베이스 매개 변수를 변경하고 그것을 다시 할내가 여기이 약간 당황 사용자 오류가 아닙니다 좋겠지 만 SQLite는/델파이

. 이 코드는 새로 고치기보다는 원본 테이블 연결을 계속 표시하고 편집 할 수 있습니다. 어떤 종류의 '플러쉬'또는 새로 고침을해야합니까?

dmMain.conMain.close; 
dmMain.conMain.Params.Values['Database'] := secondDatabase; 
dmMain.conMain.Open; 
dmMain.tblTimings.Active := true; 

다음으로 conMain.Connected : = false를 적용하지 않으려 고 시도했습니다.

+0

'tblTimings' 또는 다른 관련 객체가 여전히 활성 상태였습니까? –

+0

예, 연결 종료시 자체 닫으려고했지만 기다려 보겠습니다. 아이디어를 가져 주셔서 감사합니다. –

답변

1

이 (모든 링크 된 데이터 세트를 폐쇄한다) 일이 안된다, 그래서 버그를 부를 것이다 당신 귀하의 코드에서 올바르게 수행하고 있습니다.) Close 방법에 대한 설명을 참조하십시오

가 연결을 종료

TCustomConnection.Close.

통화 데이터베이스의 원격 소스 정보에서 연결을 끊으려면 닫습니다. 연결 구성 요소가 비활성화되기 전에 모든 연관된 데이터 집합이 닫힙니다. Close를 호출하는 것은 Connected 속성을 false로 설정하는 것과 같습니다.

대부분의 경우 연결을 닫으면 할당 된 시스템 리소스가 연결에 해제됩니다.

참고 : 이전에 활성화 된 연결을 닫은 다음 다시 열면 모든 관련 데이터 집합을 개별적으로 다시 열어야합니다. 연결을 다시 열지 않아도 연결된 데이터 집합은 자동으로 다시 열리지 않습니다.

-3

델파이 설명서에 따라 ATTACH 기존 연결에 두 번째 데이터베이스가 필요합니다.

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB'); 

DETACH

전체 문서는 여기에 사용, 데이터베이스를 제거하려면 : (http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_SQLite_with_FireDAC

+0

감사합니다. 나는 여러 개의 동시 데이터베이스에 접근하는 것에 대한 문서를 읽었지 만, 주 데이터베이스를 대체하려고 시도하고 있지만, 나는 그것을 시도 할 것이다! –