postgresql 8.1.x와 libpqxx 2.6.9 를 사용 중입니다.
array형식의 컬럼의 데이터를 바인딩하는 방법을 모르겠습니다.
혹시 경험이 있으신 분들의 도움을 구하고자 글을 올립니다.
작은 단서라도 큰 도움이 될 수 있으니 조언을 부탁드립니다.
-- 최명진
바인딩 한다는 게 어떤 말씀이신가요?
구체적으로 작업을 원하시는지 알려주시면... 잘은 모르지만 같이 고민해 볼 수 있을 듯합니다만...
네, 바인딩이란 표현이 좀 부족한 것이 사실이군요.
제가 의미하는 바는, libpqxx라이브러리를 이용하여 디비에서 데이터를 가져올 때, 가져온 데이터를 프로그래밍 언어의 변수로 붙여내는 과정을 가리키는 뜻에서 바인딩이라고 하였습니다.
관련해서 인터넷을 찾아봤지만, 애석하게도 libpqxx에 대해서 해결된 방법이 없는 것으로 이야기되고 있습니다.
어레이 타입을 적극적으로 사용하려고 하였으나, 본 문제에 부딧혀서 머뭇거리고 있네요. 스마트한 해결책이 없다면, 어레이 사용을 보류해야 할 거 같습니다.
내부적으로 클라이언트로 넘어오는 모든 데이터는 문자열입니다. cpp 이니 resultset 같은 클래스의 getInt() 같은 놈이 있다면. ResultSet.getInt() 라면, ResultSet.getIntVector() ResultSet.getStrVector() 이런식으로 클래스를 확장하면 될 것 같은데요. 내부적으로 libpq 에서의 getResult() 인가 그것을 가지고, '{', '}', 문자로 바꾸고, ',' 문자로 나누면서 strtok 인가(?) 그로 for문 중에 형 변환해서, 벡터 push 하면 될듯싶습니다. 그리 어려운 작업 같아보이는 않습니다.