saide_a Ответов: 1

Получение всего элемента в специальном столбце базы данных


всем привет
Я очень новичок в подключении sql server к программе c++.
Моя проблема заключается в том, что запрос, который я выполняю, возвращает только значение в первой строке
и я хочу, чтобы все данные строк были помещены в специальный столбец.

Что я уже пробовал:

if (SQL_SUCCESS != SQLExecDirect(hstmt, (SQLWCHAR*)L"SELECT Location FROM dbo.Customers", SQL_NTS)) {
					   		cout << "Error querying SQL Server";
					   		cout << "\n";
					   	}
				   else
				   {
						SQLCHAR sqlVersion[SQL_RESULT_LEN];
						SQLINTEGER ptrSqlVersion;
						while (SQLFetch(hstmt) == SQL_SUCCESS) {
							SQLGetData(hstmt, 2, SQL_CHAR, sqlVersion, SQL_RESULT_LEN, &ptrSqlVersion);
							//display query result
							cout << "\nQuery Result:\n\n";
							cout << sqlVersion << endl;
						}
				   }

1 Ответов

Рейтинг:
0

Jochen Arndt

Ваш код печатает не значение первой строки, а одно и то же случайное значение для каждой строки.

В запросе указывается только один столбец. Таким образом, вы можете получить данные только для первого столбца, но вы просите столбец 2. Вы бы заметили это при проверке GetData() значение.

Так что попробуйте это:

SQLRETURN ret = SQLGetData(hstmt, 1, SQL_CHAR, sqlVersion, sizeof(sqlVersion), &ptrSqlVersion);
// Check ret here