Для меня это немного новый топи c. Я учусь подключаться к SQL базам данных через C ++. Прямо сейчас у меня есть таблица, которая используется для подключения к локальному SQL серверу. На сервере есть схема, содержащая основные c данные мусора, которые использовались для лаборатории в начале семестра (я использовал данные, чтобы выяснить другой синтаксис SQL)
В этом случае используется сервер MySql Workbench. Нам были даны некоторые базовые c инструкции по настройке Visual Studio для связи с этой базой данных sql и данными запросов. Хотя это работает в некоторой степени, кажется, отказывается возвращать полную таблицу данных. В SQL, если я хочу запросить таблицу с именем offices
, где officeCode
, который я хочу просмотреть, равен '1', я просто набрал бы SELECT * FROM offices WHERE officeCode = 1;
этот же запрос на визуальном Студия, кажется, возвращает только все, кроме первого ряда. Даже если я расширяю его, чтобы он не использовал ограничение «где», он все равно отказывается возвращать самую первую запись в таблицу. Я не уверен, правильно ли я настроил код, или, может быть, он не подключается к моей базе данных правильно, кто-нибудь еще замечает то, чего у меня нет?
#include <mysql.h>
#include <iostream>
#define CRT_SECURE_NO_WARNINGS
using namespace std;
int main() {
MYSQL* conn;
MYSQL_ROW row;
MYSQL_RES* res;
conn = mysql_init(0);
conn = mysql_real_connect(conn, "127.0.0.1", "<ommittedUser>", "<omittedPass>", "new_schema", 3306, nullptr, 0);
if (conn) {
cout << "successful connection to database" << endl;
}
else {
cout << "Connection failed!" << mysql_error(conn) << endl;
}
string query = "SELECT * FROM offices WHERE officeCode = 1 ;"; //doesnt detect the first row
const char* q = query.c_str();
int exequery;
exequery = mysql_query(conn, q);
if (!exequery) {
cout << "The query executed successfully with no error." << endl;
res = mysql_store_result(conn);
if (mysql_fetch_row(res) == nullptr) {
cout << "result is empty" << endl;
}
else {
while (row = mysql_fetch_row(res)) {
printf("OfficeCode: %s, city: %s\n", row[0], row[1]);
}
}
}
else {
cout << "Error message: " << mysql_error(conn) <<":" <<mysql_errno(conn) << endl;
}
delete conn;
}