• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c++ i sql server

Object Storage Arubacloud
0 głosów
136 wizyt
pytanie zadane 15 stycznia 2018 w C i C++ przez Dejvis Nowicjusz (140 p.)

Witam, chciałbym połączyć się z baza danych która posiadam już zainstalowana lecz program po uruchomieniu nie łączy się z baza.

 

#include "stdafx.h"


#include <iostream>
#include <windows.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <sql.h>


using namespace std;

int main() {

#define SQL_RESULT_LEN 240
#define SQL_RETURN_CODE_LEN 1000

	SQLHANDLE sqlConnHandle;
	SQLHANDLE sqlStmtHandle;
	SQLHANDLE sqlEnvHandle;
	SQLWCHAR retconstring[SQL_RETURN_CODE_LEN];


	sqlConnHandle = NULL;
	sqlStmtHandle = NULL;


	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle))
		goto COMPLETED;

	if (SQL_SUCCESS != SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
		goto COMPLETED;

	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle))
		goto COMPLETED;


	cout << "Attempting connection to SQL Server...";
	cout << "\n";


	switch (SQLDriverConnect(sqlConnHandle,
		NULL,
		(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=DEJVIS\INSERTGT, 1433;DATABASE=master;UID=test, PWD=test",
		SQL_NTS,
		retconstring,
		1024,
		NULL,
		SQL_DRIVER_NOPROMPT)) {

	case SQL_SUCCESS:
		cout << "Successfully connected to SQL Server";
		cout << "\n";
		break;

	case SQL_SUCCESS_WITH_INFO:
		cout << "Successfully connected to SQL Server";
		cout << "\n";
		break;

	case SQL_INVALID_HANDLE:
		cout << "Could not connect to SQL Server";
		cout << "\n";
		goto COMPLETED;

	case SQL_ERROR:
		cout << "Could not connect to SQL Server";
		cout << "\n";
		goto COMPLETED;

	default:
		break;
	}


	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, sqlConnHandle, &sqlStmtHandle))
		goto COMPLETED;

	cout << "\n";
	cout << "Executing T-SQL query...";
	cout << "\n";

	if (SQL_SUCCESS != SQLExecDirect(sqlStmtHandle, (SQLWCHAR*)L"SELECT @@VERSION", SQL_NTS)) {
		cout << "Error querying SQL Server";
		cout << "\n";
		goto COMPLETED;
	}
	else {

		SQLCHAR sqlVersion[SQL_RESULT_LEN];
		SQLINTEGER ptrSqlVersion;

		while (SQLFetch(sqlStmtHandle) == SQL_SUCCESS) {

			SQLGetData(sqlStmtHandle, 1, SQL_CHAR, sqlVersion, SQL_RESULT_LEN, &ptrSqlVersion);

			cout << "\nQuery Result:\n\n";
			cout << sqlVersion << endl;
		}
	}


COMPLETED:
	SQLFreeHandle(SQL_HANDLE_STMT, sqlStmtHandle);
	SQLDisconnect(sqlConnHandle);
	SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle);
	SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle);

	cout << "\nPress any key to exit...";
	getchar();
}

 

komentarz 15 stycznia 2018 przez tangarr Mędrzec (154,860 p.)
Wrzuć jeszcze output z programu.
komentarz 15 stycznia 2018 przez Dejvis Nowicjusz (140 p.)

Dodam jeszcze, że używam visual studio 2017 a bazy to SQL Server 2014

Dane wyjściowe:

Wątek 0x3128 zakończył działanie z kodem 0 (0x0).
Wątek 0x2fe8 zakończył działanie z kodem 0 (0x0).
Wątek 0x2e40 zakończył działanie z kodem 0 (0x0).
„bazatest.exe” (Win32): załadowano „C:\Windows\SysWOW64\kernel.appcore.dll”. Nie można odnaleźć lub otworzyć pliku PDB.
Wątek 0x2874 zakończył działanie z kodem 0 (0x0).
Wątek 0x1838 zakończył działanie z kodem 0 (0x0).
Program „[12276] bazatest.exe” zakończył działanie z kodem 0 (0x0).

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 3 stycznia 2018 w SQL, bazy danych przez Toms0nV Nowicjusz (240 p.)
0 głosów
1 odpowiedź 513 wizyt
0 głosów
2 odpowiedzi 184 wizyt
pytanie zadane 4 marca 2017 w PHP przez niezalogowany

92,568 zapytań

141,422 odpowiedzi

319,635 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...