Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.09.2012
Сообщений: 12
1

С++ и ODBC

19.09.2012, 15:39. Показов 1946. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема такая: есть программа метатрейдер4(может кто знает, для торговли на рынке форекс.) Пишу для нее плагин, который в реальном времени забирает с MT server информацию и кладет ее в базу MySQL через ODBC Connector(MySQL server 5.5, ODBC connector 5.1). На Windows 7 все работает отлично, никаких проблем. Но на Windows Server 2003 при запуске вылетает на следующем коде:

C++
1
2
3
4
5
SQLRETURN retcode = SQLExecDirect( obj->hstmt, (SQLCHAR *)((string("CREATE TABLE IF NOT EXISTS ") + obj->db_table_name + string(" ("
        "id INT(11) NOT NULL AUTO_INCREMENT, "
        "order_id INT(11) NOT NULL, "
        "PRIMARY KEY (id)"
        ")")).c_str()), SQL_NTS );
Функция подключения отрабатывает нормально, вот она

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int ODBC_SQL_connector::ConnectAndInitSQL()
{
    SQLRETURN retcode;
 
    retcode = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv );
    
    retcode = SQLSetEnvAttr( henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0 ); 
    if (LogSQLResult( "SQLSetEnvAttr henv", retcode, SQL_HANDLE_ENV, henv ))
        return FALSE;
 
    retcode = SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc ); 
    if (LogSQLResult( "SQLAllocHandle hdbc", retcode, SQL_HANDLE_ENV, henv ))
        return FALSE;
 
    retcode = SQLSetConnectAttr( hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0 );
    if (LogSQLResult( "SQLSetConnectAttr", retcode, SQL_HANDLE_DBC, hdbc ))
        return FALSE;
    
    retcode = SQLConnect( hdbc, (SQLCHAR *)db_server_name.c_str(), SQL_NTS, (SQLCHAR *)db_login.c_str(), SQL_NTS, (SQLCHAR *)db_password.c_str(), SQL_NTS );
    if (LogSQLResult( "SQLConnect", retcode, SQL_HANDLE_DBC, hdbc ))
        return FALSE;
    else
        connected = true;
 
    retcode = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt );
    if (LogSQLResult( "SQLAllocHandle hstmt", retcode, SQL_HANDLE_DBC, hdbc ))
        return FALSE;
 
    retcode = SQLExecDirect( hstmt, (SQLCHAR *)((string("USE ") + db_name).c_str()), SQL_NTS );
    if (LogSQLResult( "SQLExecDirect USE", retcode, SQL_HANDLE_STMT, hstmt ))
        return FALSE;
   
    return TRUE;
}
Проблема осложняется еще и тем, что когда создал простой exe-шник, который делает то же самое, он отработал без замечаний.
Может кто сталкивался с подобным?

Добавлено через 22 часа 10 минут
Попробовал другой коннектор (MySQL Connector/C++ ), та же история. Может надо какие то доставить dll именно для работы с С++?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2012, 15:39
Ответы с готовыми решениями:

ODBC+mySQL, Изучаю модуль ODBC
Здравствуйте. Возник следующий вопрос. Пытаюсь выполнить простой инсерт в таблицу на mySQL...

Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3.
Hi All! имеется форма для добавления нового юзера в базу Set strConnString =...

Microsoft OLE DB Provider for ODBC Drivers error '8007000e' [Microsoft][ODBC Microsoft Access Driver] Cannot open any more tables.
Microsoft OLE DB Provider for ODBC Drivers error '8007000e' Cannot open any more tables. ...

Отличия MySQL ODBC for VS и обычного MySQL ODBC driver for Windows
Привет! Не знаю, может вопрос немного не сюда, но изучаю C# в разрезе м подключением к базе...

0
19.09.2012, 15:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2012, 15:39
Помогаю со студенческими работами здесь

MySQL ODBC 5.3 - В "Источника данных (ODBC) "драйвер присутствует на вкладке "Драйверы"
Проблема в следующем. Установил MySQL 5.6.24 (ОС - Windows 7 Professional). В "Источника данных...

Странная ошибка с ODBC: [Microsoft][Драйвер ODBC Microsoft Access] Файл '(нет данных)' не может быть открыт ядром базы данных Microsoft Jet.
Внезапно вылезла вот такая ошибка: Файл '(нет данных)' не может быть открыт ядром базы данных...

Тип ошибки: Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AL_AS
Я только начинаю, это мой первый пробный пример и никак не могу начать: Вот пример, который я...

Помогите отловить ошибку: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect s
Раньше токого не возникало, пытаюсь вставить в таблицу: otvet = trim(request.form('R1')) last =...

Проблемы с trusted_connection. Ошибка: Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]Login
Пытаюсь подключиться к БД. Строка соединения следующая: Provider=Microsoft OLE DB Provider for SQL...

odbc
нужно создать соединение по odbc, чтоб импортировать данные из 1С на линуховый сервер, по мануалу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru