Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для kess
0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 27

Прямой вызов функций ODBC API

14.04.2009, 17:25. Показов 2008. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код:
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
//(SQLDataSources) 
typedef SQLRETURN (__import * _ODBCDataSources(SQLHENV EnvironmentHandle, 
                                               SQLUSMALLINT Direction,        
                                               SQLCHAR *DataSource,           
                                               SQLSMALLINT BufferLength1,     
                                               SQLSMALLINT *NameLength1Ptr,   
                                               SQLCHAR *Description,          
                                               SQLSMALLINT BufferLength2, 
                                               SQLSMALLINT *NameLength2Ptr)); 
//(SQLAllocHandle)
typedef SQLRETURN (__import * _ODBCAllocHandle(SQLSMALLINT HandleType,       
                                              SQLHANDLE InputHandle,
                                              SQLHANDLE *OutputHandlePtr));
_ODBCDataSources * DataSources=NULL;
DataSources = (_ODBCDataSources *)GetProcAddress(ODBC32,"SQLDataSources");
 
_ODBCAllocHandle *AllocHandle=NULL;
AllocHandle = (_ODBCAllocHandle *)GetProcAddress(ODBC32,"SQLAllocHandle");
 
SQLHENV  hEnv=NULL;
AllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&hEnv);
const short SQL_MAX_DSN_LENGTH=255;
SQLCHAR DSN[SQL_MAX_DSN_LENGTH+1];
SQLCHAR DES[256];
short   wDSNLen;
short   wDesLen;
AnsiString s="",s1="";
DataSources(hEnv,SQL_FETCH_FIRST,DSN,SQL_MAX_DSN_LENGTH+1,&wDSNLen,DES,256,&wDesLen);
s=(AnsiString)((char*)DSN);
DataSources(hEnv,SQL_FETCH_NEXT,DSN,SQL_MAX_DSN_LENGTH+1,&wDSNLen,DES,256,&wDesLen);
s1=(AnsiString)((char*)DSN);
Memo1->Lines->Add(s);
Memo1->Lines->Add(s1);
Всё выполняется, ошибок нет. Но при этом функция DataSources не записывает в буфер DSN имя источника данных (содержимое буфера не меняется). Кто может подсказать в чём проблема.
Заранее благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2009, 17:25
Ответы с готовыми решениями:

C++ прямой вызов HTTP-запросов из REST API
1) Где можно найти документацию по REST API на С++? 2) Если кто знает как реализовать прямой вызов HTTP-запросов ИМЕННО с помощью REST...

Вызов API функций
Как вызывать в C# API функции, например вот эту BOOL CALLBACK MonitorEnumProc( __in HMONITOR hMonitor, __in HDC hdcMonitor, ...

Вызов API функций в VB.NET
Такая у меня проблемка: Подскажите, кто сталкивался. Пробую пользоваться библиотекой p2smon.dll (Crystal Reports) для создания TTX файла...

1
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
16.04.2009, 20:41
Попробуй объявить дополнительно переменную
C++
1
 char buff[SQL_MAX_DSN_LENGTH+1]
.
Вообщем ситуация такая: Я как то три дня промучился с этой функцией, не работала и все на каком то форуме я нашел ответ: Оказывается функция SQLDataSources не совсем корректно работает, для того чтобы она работала правильно, нужно объявить дополнительно переменную типа char (SQLCHAR, UCHAR) таким же размером как и остальные. В общем попробуй
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2009, 20:41
Помогаю со студенческими работами здесь

Вызов функций Windows API в HomeLisp 1.13.51
Как реализовать вызов функций Windows API из программ на HomeLisp версии 1.13.51? Если возможно, приведите пример работы с функцией...

Срочно - стринги и вызов Win32 API функций
Ответ на первоначальный вопрос найден с помощью Messir-a. Ключевыми словами тут является декларирование стринга в структуре с...

Вызов функций RASDIAL RASEnumConnections RASHangUp с API.
Как вызвать из VB следующие API-функции: RASDIAL RASEnumConnections RASHangUp и другие для того, чтобы написать полнофункциональный...

Срочно - стринги и вызов Win32 API функций (.NET)
Я новичек в VB.NET. В VB6 можно было декларировать стринг как Dim strDirectory as String * 256и потом передать в API функцию...

Cobol & ODBC Api
Доброго времени. Вот поставили задачу, перевести несколько файлов из Pro*Cobol (E/SQL SYBASE) к виду, который будет работать с MSSQL... ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru