2014-09-24 1 views
2

QSqlQueryModel에 문제가 있습니다. 데이터베이스에서 Time을 가져올 때까지 제대로 작동합니다. Firebird 2.5 데이터베이스 사용.QSqlQueryModel이 데이터베이스에서 시간을 가져올 수 없습니다.

matchModel = new QSqlQueryModel(this); 
matchModel->setQuery("Select * from mecz"); 
ui->matchTableView->setModel(matchModel); 
ui->matchTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); 
ui->matchTableView->horizontalHeader()->setStretchLastSection(true); 

내 데이터베이스 데이터 :

enter image description here

내 응용 프로그램을 보여줍니다 무엇 :이 코드 qDebug() << matchModel->index(0,4).data().toTime().toString();를 실행하면

enter image description here

내가 빈 값 ("")을 얻는다.

편집 :

내가 임시 해결책을 찾을 수 있습니다. 쿼리를 다음으로 변경하십시오.

Select id, druzyna_gospodarz, druzyna_gosc, data_meczu, EXTRACT(HOUR from CAST(godzina_meczu as TIMESTAMP)) || ':' || IIF(CHAR_LENGTH(EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)))>1,EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)),'0' || EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP))) from mecz 
+0

정상이어야합니다. 'matchModel-> lastError(). text()'를 호출하면 오류가 출력 될 수 있습니다. – Chernobyl

+0

그것은 공백'' "'' – Sajmplus

+0

만 인쇄합니다. 내 컴퓨터에서 (SQLite로) 시도했는데 데이터베이스에 01.01.2015를 입력하면 tableView에 '01.01.2015'도 있지만 다른 형식으로 나타납니다 , 그래서 나는 당신의 코드가 가득 차 있다고 생각하지 않는다. 그렇다면 전체 코드를 여기에 게시하십시오. 아마도 저 또는 다른 사람들에게 도움이 될 것입니다. – Chernobyl

답변

0

임시 해결책. 검색어를 다음으로 변경하십시오.

Select id, druzyna_gospodarz, druzyna_gosc, data_meczu, EXTRACT(HOUR from CAST(godzina_meczu as TIMESTAMP)) || ':' || IIF(CHAR_LENGTH(EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)))>1,EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP)),'0' || EXTRACT(MINUTE from CAST(godzina_meczu as TIMESTAMP))) from mecz 
관련 문제