Qt Creator로 Windows에서 실행되는 음악을 인식하는 응용 프로그램을 개발했습니다.Qt/MySQL 요청은 내 컴퓨터에서 작동하지만 다른 컴퓨터에서는 작동하지 않습니다.
이 앱의 모든 사용자가 재생 한 음악 표가 추가되었습니다.
테이블은 인터넷에서 호스팅되는 데이터베이스에 연결됩니다.
void DataTable::refreshData(){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("mysql1.alwaysdata.com");
db.setDatabaseName("mymusicrecognition_mmr");
db.setUserName("user");
db.setPassword("pass");
db.open();
QSqlQuery query("SELECT * FROM mmr ORDER BY id DESC");
int i = 0;
while (query.next() && i<500) {
QString music = query.value(1).toString();
QString album = query.value(2).toString();
QString time = query.value(3).toString();
QString date = query.value(4).toString();
item(i,0)->setText(music);
item(i,1)->setText(album);
item(i,2)->setText(time);
item(i,3)->setText(date);
i++;
}
db.close();
}
사용자의 컴퓨터에 의해 식별되는 마지막 음악 추가 요청 :
void DataTable::addRowInData(QString artist, QString title,QString album){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("mysql1.alwaysdata.com");
db.setDatabaseName("mymusicrecognition_mmr");
db.setUserName("user");
db.setPassword("pass");
db.open();
QSqlQuery query;
query.exec(QString("INSERT INTO mmr VALUES (NULL,'%1','%2','%3','%4')")
.arg(artist+" - "+title).arg(album).arg(QTime::currentTime().toString("H:mm:ss")).arg(QDate::currentDate().toString("d.MM.yyyy")));
db.close();
}
문제는 때입니다
나는 모든 음악을 얻을 테이블을 채우기 위해이 요청을 사용하여 내 컴퓨터에 앱을 설치하면 모든 요청이 작동하지만 다른 컴퓨터 (및 다른 IP)에 설치하면 테이블이 비어있어 음악이 추가되지 않습니다.
참고 : libmysql.dll을
qsqlmysqld.dll
qsqlmysql.dll
가에서 U 감사
Qt5Sql.dll : 나는 프로그램 폴더에 그 DLL을 추가 advance
CONFIG + = CONSOLE을 사용하여 응용 프로그램을 컴파일하고 콘솔에서 시작하여 출력을보십시오. 또한 * d.dll로 끝나는 QT의 dll은 디버그 dll이므로 빌드 유형 (디버그 또는 릴리스)에 따라 필요한 dll로 배포하십시오. – niculare
감사합니다. QSqlDatabase : QMYSQL 드라이버 또한, 나는 – AmirH
가 좋아, 내가 폴더에 "sqldrivers을"qsqlmysql.dll 넣어 노력하고 .PRO 파일에 CONFIG + = 콘솔을 추가 qsqlmysqld.dll, 나는 콘솔에서이 메시지를 삭제합니다 로드되지 않았습니다 – AmirH