두 개의 다른 데이터베이스에있는 테이블의 데이터를 한 번에 쿼리 할 Qt 응용 프로그램을 개발 중입니다. 저는 Oracle을 데이터베이스로 사용하고 있지만 고용주는 2 개의 데이터베이스 사이에 데이터베이스 링크를 만들지 않고이 작업을 수행하기를 원합니다. 그래서 Qt SQL 모듈 객체를 사용하여 교차 데이터베이스 쿼리 엔진을 개발할 생각이었습니다. 그러나 그것은 SQL 파서만큼 복잡하지 않아야합니다. 두 개의 데이터베이스에있는 테이블의 쿼리 데이터를 하나의 뷰에 표시하고 공통 인터페이스를 사용하여 이러한 쿼리를 수행하면됩니다. 하지만 내 지식에 따르면 Qt SQL 모듈은 단 하나의 데이터베이스에서 쿼리하는 데 사용할 수 있습니다. 전에 이런 종류의 프로그래밍을 해 본 사람이나 이것에 대한 아이디어를 가진 사람이 있다면, 당신의 제안은 많은 것을 인정합니다. 고맙습니다.Qt를 사용하는 Oracle 데이터베이스 용 교차 데이터베이스 쿼리 엔진
0
A
답변
0
이전에 QSqlDatabase을 사용하여 여러 데이터베이스 연결을 열어서 그런 작업을했습니다.
따라서, 공식 문서에 의해 영감을이 같은 시도 할 수 있습니다 :
//Open database 1:
QSqlDatabase db1 = QSqlDatabase::addDatabase("QOCI","db1");
db.setHostName("acidalia");
db.setDatabaseName("tns1");
db.setUserName("mojito");
db.setPassword("J0a1m8");
bool ok = db.open();
..
//Open database 2:
QSqlDatabase db2 = QSqlDatabase::addDatabase("QOCI","db1");
..
db.setDatabaseName("tns2");
..
는 이제 databasese가 열려을 당신은 쿼리에서 사용할 수 있습니다. 같은 문서 당 DB 변수의 범위에주의하십시오 :
{
QSqlDatabase db = QSqlDatabase::database("db1");
QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
}
{
QSqlDatabase db = QSqlDatabase::database("db2");
QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
}
//Clean up
QSqlDatabase::removeDatabase("db1");
QSqlDatabase::removeDatabase("db2");
관련 문제
- 1. 검색 엔진 용 데이터베이스
- 2. 이미지 용 데이터베이스 저장 엔진
- 3. Oracle 데이터베이스 용 Pfile 편집
- 4. Oracle 용 샘플 데이터베이스 스키마
- 5. 저장 프로 시저에서 데이터베이스 이름 및 교차 데이터베이스 쿼리 변경
- 6. 교차 데이터베이스 업데이트?
- 7. JPA에서 교차 데이터베이스 조인
- 8. 델파이 1 용 경량 데이터베이스 엔진?
- 9. 추천 엔진 데이터베이스 설계?
- 10. asp.net을 사용하는 MySQL 데이터베이스 쿼리 또는 asp.net
- 11. Drupal에서 교차 데이터베이스 테이블 조인?
- 12. Oracle 데이터베이스 공간
- 13. Oracle 데이터베이스 인스턴스 결정
- 14. Oracle 데이터베이스 이름 얻기
- 15. Oracle 10g 데이터베이스 lite
- 16. Oracle 데이터베이스 링크
- 17. .cts 파일 - Oracle 데이터베이스?
- 18. 다른 MySQL 데이터베이스 엔진 사용
- 19. 데이터베이스 엔진 비교 - Windows Mobile
- 20. SqlBulkCopy의 데이터베이스 엔진 독립 아날로그
- 21. 데이터베이스 엔진 ... SQL Server 2005
- 22. 데이터 조작을위한 간단한 데이터베이스 엔진
- 23. 최고의 Oracle 데이터베이스 관리자/편집기?
- 24. 데이터베이스 엔진 독립적 페이징을 구현하는 방법은 무엇입니까?
- 25. C#에서 Oracle 데이터베이스 액세스
- 26. nhibernate에서 대체 데이터베이스 스키마 쿼리
- 27. 이미지 용 데이터베이스 설계
- 28. 데이터베이스 용 웹 프런트 엔드
- 29. 대형 데이터베이스 용 SQL Server 데이터베이스 최적화
- 30. Oracle 데이터베이스의 리버스 엔지니어링 데이터베이스
다른 Oracle 데이터베이스를 정리에 removeDatabase를 참조하십시오? 별도의 물리적 호스트 또는 별도의 Oracle 인스턴스에 있습니까? [오라클의 dblink 기능] (http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5005.htm)은 자신 만의 롤업보다 더 좋은 아이디어입니다. –
예, 두 데이터베이스가 동일한 물리적 호스트에 있습니다. 즉, 약 2 개의 인스턴스를 말하는 것입니다. 고용주가 dblink를 사용하지 않기를 원하는 이유는 일부 사용자가 해당 인스턴스의 모든 테이블을 볼 수있는 권한이 없기 때문에 dblink를 쿼리에 사용하고 권한이 적은 사용자가 내 애플리케이션을 사용하면 원하지 않는 쿼리를 만들 수 있습니다. – kasper360
데이터베이스는 인스턴스가 아닙니다. 인스턴스는 여러 데이터베이스를 보유 할 수 있습니다. 다른 데이터베이스에 액세스 권한을 부여하는 문제 일 수 있습니다. dblink가 필요하지 않지만 실제 문제는 보조자로 표시됩니다. –