2012-07-08 1 views
1

Getters/Properties를 기반으로 특정 객체를 필터링/쿼리하기위한 SQL 구문을 제공하는 C++ 라이브러리가 있습니까? 나는 http://www.thomasfrank.se/sqlike.html (JS/AS 용)과 비슷한 것을 찾고 있지만 C++로 작성했습니다. 요구 사항은 crossplattform, lightweight 및 boost (사용하지 않아야 함)가 될 것입니다.SQL 구문과 비슷한 C++ 객체 필터 엔진

예. 내 C + + 코드에 대한 스크립팅 엔진을 구현 - 내 스크립트는 내 C + + 개체에 콜백을 추가 할 수 있습니다. 이제 각 객체 (액터)에 대한 스크립트를 작성하는 대신 필터를 기반으로 모든 객체에 적용하려고했습니다. 새로운 객체가 생성 될 때

그래서 내 스크립트에서 나는 모든 리스너를 통해 볼 것,

manager:AddListener("select name="SomeName" and age > 10 or weight < 10",SomeEvent,MyScriptFunc) 

같은 것을 할 것이다 - 내가 추가,이 속성은 구성 하나와 일치 객체 경우 (예 : 개체가있다 속성 이름 = somename 및 나이가 10 이상)

현재 고유 식별자 (ID)로 내 개체를 식별합니다.하지만 유사한 개체에 동일한 이벤트 수신기를 적용 할 때 더욱 유연 해지고 싶습니다.

기본적으로 일부 문자열 쿼리에서 필터 개체를 만드는 라이브러리가 있으면 충분합니다.

답변

1

당신은 SQLite을 시도 할 수 있습니다 :

SQLite는은 자체 포함, 서버없는, 제로 구성, 트랜잭션 SQL 데이터베이스 엔진을 구현하는 소프트웨어 라이브러리입니다. SQLite는 전 세계적으로 가장 널리 배포 된 SQL 데이터베이스 엔진입니다. SQLite의 소스 코드는 공개 도메인에 있습니다. 그럼 당신은 실제로 쿼리를 수행 할 One-Step Query Execution Interface을 사용할 수 있습니다

sqlite3_open(":memory:", &db); 

: 당신은 메모리 데이터베이스에이 C++ 객체를 유지하기 위해 만들 수있는

는에 조회하고자하는 것을 속성.

데이터베이스를 채우기 위해 IDL을 사용하여 개체를 설명 할 수 있으며 IDL 파서는 C++ 인터페이스 헤더 파일과 데이터베이스를 채울 코드를 만듭니다.

+1

그것은 완전히 다른 것입니다 - SQLite는 mysql 또는 postgres와 같습니다. 파일에 기록하고 일반 테이블 데이터 등을 저장합니다. 데이터베이스 엔진이 아닌 쿼리 엔진만을 찾고 있습니다! – Steve

+0

@ 스티브 : 답변을 업데이트했습니다. 감사합니다 – jxh

+1

아니요 - 데이터베이스 연결이 필요합니다 - 저를 신뢰하십시오, sqlite는 무엇을 찾고 있습니까? - 전에 sqlite로 작업했습니다 – Steve

관련 문제