powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / как подключиться к базе из сервиса???
6 сообщений из 6, страница 1 из 1
как подключиться к базе из сервиса???
    #32055619
aliho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код типа:
SQLHENV henv;
SQLHDBC hdbc;
SQLRETURN retcode;
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
SQLSetConnectAttr(hdbc,SQL_LOGIN_TIMEOUT,(void*) 5, 0);
retcode = SQLConnect(hdbc, (SQLCHAR*) "iwdsn", SQL_NTS,(SQLCHAR*) "SYSDBA", SQL_NTS, (SQLCHAR*) "masterkey", SQL_NTS);
if (retcode != SQL_SUCCESS){
short i = 1, MsgLen;
SQLCHAR SqlState[300] ;
SQLINTEGER NativeError;
SQLCHAR Msg[300];
while ((retcode = SQLGetDiagRec(SQL_HANDLE_DBC, hdbc, i, SqlState, &NativeError,
Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA) {
i++;
}
}
}
SQLDisconnect(hdbc);
}else
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}

не работает в сервисе, а в обычной проге работает. В чем дело??? и как сделать так, чтобы заработало???
...
Рейтинг: 0 / 0
как подключиться к базе из сервиса???
    #32058992
The Lex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диагностика прописана: а что она пишет то?
...
Рейтинг: 0 / 0
как подключиться к базе из сервиса???
    #32059050
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервис запущен под учетной записью не LocalSystem ли? Этой учетной записи запрещено любое обращение по сети.
...
Рейтинг: 0 / 0
как подключиться к базе из сервиса???
    #32062522
Olle_Up
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какая версия ?
Я разобрался со скроллируемыми курсорами - могу кинуть класс если надо.
А еще есть смысл проверять возврат не только на SQL_SUCCESS но и на остальные коды. Например SUCCESS_WITH_INFO.
...
Рейтинг: 0 / 0
как подключиться к базе из сервиса???
    #32062548
А я SQL_SUCCEEDED проверяю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
					retc=SQLSetConnectAttr(m_hdbc[i],SQL_COPT_SS_BCP,
						(void*)SQL_BCP_ON,SQL_IS_INTEGER);
					if (!SQL_SUCCEEDED(retc))
					{
						printError (pSrvProc,  "SQLSetConnectAttr(hdbc1,SQL_COPT_SS_BCP,...) failed..." );
						res=FALSE;
						break;
					}
					retc=SQLConnect(m_hdbc[i],(SQLTCHAR*)szDSN,SQL_NTS,
						(SQLTCHAR*)szUID,SQL_NTS,
						(SQLTCHAR*)szPWD,SQL_NTS);
					if (!SQL_SUCCEEDED(retc))
					{
						printError (pSrvProc,  "SQLConnect(hdbc1,'MyDSN',SQL_NTS,...) failed..." );
						res=FALSE;
						break;
					}
...
Рейтинг: 0 / 0
как подключиться к базе из сервиса???
    #32062552
А я SQL_SUCCEEDED проверяю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
					retc=SQLSetConnectAttr(m_hdbc[i],SQL_COPT_SS_BCP,
						(void*)SQL_BCP_ON,SQL_IS_INTEGER);
					if (!SQL_SUCCEEDED(retc))
					{
						printError (pSrvProc,  "SQLSetConnectAttr(hdbc1,SQL_COPT_SS_BCP,...) failed..." );
						res=FALSE;
						break;
					}
					retc=SQLConnect(m_hdbc[i],(SQLTCHAR*)szDSN,SQL_NTS,
						(SQLTCHAR*)szUID,SQL_NTS,
						(SQLTCHAR*)szPWD,SQL_NTS);
					if (!SQL_SUCCEEDED(retc))
					{
						printError (pSrvProc,  "SQLConnect(hdbc1,'MyDSN',SQL_NTS,...) failed..." );
						res=FALSE;
						break;
					}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / как подключиться к базе из сервиса???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]