저는 (지금까지는 PostgreSQL과 mySQL을 사용하여) 데이터베이스에 연결하기 위해 Qt를 사용하고 있으며, 포트가 어떻게 작동하는지 혼란 스럽습니다. 그게 차이를 만드는 경우 우분투를 사용하고 있습니다.포트를 설정하지 않고 데이터베이스를 어떻게 연결합니까?
여기 설명서에 따르면 http://doc.qt.nokia.com/4.8-snapshot/qsqldatabase.html#setPort에는 포트의 기본값이 없습니다. 그러나 나는 포트 설정을하지 않았지만 여전히 문제없이 연결하고 있다는 것을 설정에서 알게되었습니다. db.setPort(-1);
또는 내가 사용 기대로 :
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("mydb");
db.setUserName("name");
db.setPassword("pass");
내가 이렇게하면
또한 작동 (나도 MySQL의 드라이버를 시도) :
그래서 나는 이렇게 설정 한 기본 포트 : db.setPort(5432);
그러나 예상대로 다른 포트가 작동하지 않습니다. 따라서 기본 포트 값이 없으며 -1은 분명히 유효한 포트가 아님을 감안할 때 어떻게 작동합니까?
포트를 명시 적으로 설정하지 않거나 완전히 무효로 설정하면 QSqlDatabase.open()의 코드가 데이터베이스/드라이버 유형의 기본 포트 번호를 사용하게됩니다. 내 이론을 확인하기 위해 DB가 실행중인 포트를 변경 한 다음 코드를 다시 실행하려고 시도 할 수 있습니다. –