2013-09-04 6 views
0

내 프로젝트에서 데이터베이스 작업을하고 있습니다. 나는 updateIntoTestResult() 함수가있는 'dataBaseMaster'파일을 가지고있다. 나는이TypeError : 'dbMasterObject.updateIntoTestResult'식의 결과 [undefined]가 함수가 아닙니다.

qml->setContextProperty("dbMasterObject", dbMasterObject);

같은 설정 상황에 의해 dbMasterObject을 만든하지만 난 내 main.qml이 updateIntoTestResult() 메서드를 호출 할 때, 나는이

TypeError: Result of expression 'dbMasterObject.updateIntoTestResult' [undefined] is not a function

같은 오류를 얻고있다

DatabaseMaster.hpp

class DatabaseMaster : public QObject 
{ 
public: 
     Q_OBJECT 
public: 
    void updateIntoTestResult(int id, int result); 

}; 

DatabaseMaster.cpp

내가 제대로 그 방법을 선언 한 반면 main.qml

dbMasterObject.updateIntoTestResult(MICROPHONE_ID, TEST_STATE_PASS) 

, 나 좀 도와 내가 왜이 오류가 무엇입니까하시기 바랍니다에 전화 16,

void DatabaseMaster::updateIntoTestResult(int id, int result) { 

QSqlDatabase database = QSqlDatabase::database(); 

QSqlQuery query(database); 

query.prepare("update "+TEST_RESULT_MASTER+" set "+RESULT+" = :"+RESULT+" where "+TEST_ID+"= :"+TEST_ID+";"); 

query.bindValue(":"+RESULT, result); 
query.bindValue(":"+TEST_ID, id); 

query.exec(); 

.

미리 감사드립니다 .. !!

답변

5

updateIntoTestResult은 슬롯이 아니거나 Q_INVOKABLE이기 때문에 qml 시스템에 알려져 있지 않습니다.

간단한 수정 - Q_INVOKABLE 삽입 :

class DatabaseMaster : public QObject 
{ 
public: 
    Q_OBJECT 
public: 
    Q_INVOKABLE void updateIntoTestResult(int id, int result); 
}; 
+0

죄송합니다 .. !! 덕분에 지금은 잘 작동합니다 .. !! :) – sumitl