2013-06-28 1 views
-1

관련 질문 this one 관련. 좋아, 이제 내 unsigned integerbind_text 기능으로 묶는다. 이 후 INTEGER 열에서 올바르게 저장된 unsigned integer 값을 볼 수 있습니다. 자, base에서 C++ 변수 unsigned int xxx으로 받고 싶습니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 텍스트로 요청한 다음 ui으로 변환 하시겠습니까? 아니면 sqlite_int64으로 요청하여 어떻게 든 unsigned int으로 변환 하시겠습니까? 몇 가지 예제 코드를 추가하십시오. 감사.sqlite C++ 및 부호없는 정수 조작

+0

왜 당신이 구속력' 'sqlite3_bind_int()'대신'sqlite3_bind_text()'를 사용 하시겠습니까? – trojanfoe

+0

@trojanfoe 왜냐하면 valuer는'unsigned'이고'_int()'와 bind하면 음수로 표시됩니다. – abrahab

+0

쓰레기입니다. – trojanfoe

답변

2

unsigned integer 결합하는 단 하나의 올바른 방법이있다 : sqlite3_bind_int64 사용 : 다시 쿼리와 같은 값을 얻으려면

unsigned int key = ...; 

sqlite3_bind_int64(stmt, 1, key); 

sqlite3_column_64 사용

key = (unsigned int)sqlite3_column_int64(query_stmt, 0); 
+0

'sqlite3_bind_int()'도 똑같이 작동한다고 가정합니다. 단, 숫자> 0x80000000이 데이터베이스에서 음수로 표시되지만'sqlite3_column_int()'를 사용하면 문제가 없을 것입니다. – trojanfoe

+0

이 값에 액세스하는 * 다른 * 방법으로는 동일한 값이 나오지 않으므로 작동하지 않습니다. –

+0

부호 비트를 (잘못) 사용하는 값에 대해서만, 대부분의 값은 OK가됩니다. – trojanfoe