amine zawix Ответов: 1

Как подключиться к базе данных (SQLSERVER) из проекта C++?


Я потратил слишком много времени, пытаясь подключиться к базе данных, но бесполезно, любые идеи будут очень оценены.
Это проект MFC, проблема заключается в строковом соединении (возможно).

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

Я пробовал некоторые библиотеки и некоторые учебные пособия, но ничего не ясно ( я не могу поверить, что это слишком сложно)
Сейчас я работаю над этим классом

<pre>#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <sqltypes.h>
#include <sql.h>
#include <sqlext.h>
using namespace std;
#define SQL_RESULT_LEN 240
#define SQL_RETURN_CODE_LEN 1000
class Connect
{
	SQLHANDLE sqlConnHandle;
	SQLHANDLE sqlStmtHandle;
	SQLHANDLE sqlEnvHandle;
	SQLWCHAR retconstring[SQL_RETURN_CODE_LEN];
public :Connect() {
	sqlConnHandle = NULL;
	sqlStmtHandle = NULL;
	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle))
		MessageBox(NULL, " connected to database\n", NULL, NULL);
	if (SQL_SUCCESS != SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
		MessageBox(NULL, " connected to database\n", NULL, NULL);
	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle))
		MessageBox(NULL, " connected to database\n", NULL, NULL);
	};
	 ~Connect() {};
	//define handles and variables

	//initializations
public: void connect()
{
	
	switch (SQLDriverConnectW(sqlConnHandle,
		NULL,
		(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=TN1DEVLVTS49\\SQL2K14, 1433;UID=sa;PWD=Linedata1;DATABASE=Training_Project_DataBase;Trusted=true;",
		//DRIVER={SQL Server};SERVER=TN1DEVLVTS49\\SQL2K14, 1433;UID=sa;PWD=Linedata1;DATABASE=Training_Project_DataBase;Trusted=true;
		//Driver={SQL Server};Server=TN1DEVLVTS49\\SQL2K14;UID=sa;PWD=Linedata1;Database=Training_Project_DataBase;
		//(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=localhost, 1433;DATABASE=Training_Project_DataBase;",
		SQL_NTS,
		retconstring,
		1024,
		NULL,
		SQL_DRIVER_NOPROMPT)) {
	case SQL_SUCCESS:
		MessageBox(NULL, "Successfully connected to SQL Server", NULL, NULL);

		break;
	case SQL_SUCCESS_WITH_INFO:

		MessageBox(NULL, "Successfully connected to SQL Server", NULL, NULL);
		break;
	case SQL_INVALID_HANDLE:

		MessageBox(NULL, " Could not connect to SQL Server", NULL, NULL);
	case SQL_ERROR:

		MessageBox(NULL, " Could not connect to SQL Server", NULL, NULL);
	default:
		break;
	}
};
};

OriginalGriff

Это будет зависеть от того, какой проект C++ вы пытаетесь написать и для какой среды. Приложение MFC / Native будет использовать различные функции для решения .NET C++, а ОС, отличающаяся от Windows, вероятно, будет полностью использовать другой набор.

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

amine zawix

OriginalGriff. Я работаю над проектом MFC и использую Visual Studio и уже создал систему SDN ODBC
Я обновил свой вопрос

1 Ответов

Рейтинг:
2

CPallini

Есть много способов, и вы можете найти тонны учебников, просто Гуглить См., например:: Подключение к SQL Server из Visual C++ | Tech How To[^].