Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
MS Visual Studio C++ 2010. Требуется подключить 2 базы данных (MySQL и Access) с помощью ODBC. Как выяснить состав этих баз данных (количество таблиц в базе, их наименования, количество полей в каждой таблице и их наименования)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 16:30 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
Раз ODBC, значит вызовы SQLTables() и SQLColumns(). Скачай себе Microsoft Data Access SDK, там будет описание интерфейса ODBC. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 16:45 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
Взял из хелпника пример применения функции SQLCOlumn(): #define STR_LEN 128+1 #define REM_LEN 254+1 /* Declare buffers for result set data */ SQLCHAR szCatalog[STR_LEN], szSchema[STR_LEN]; SQLCHAR szTableName[STR_LEN], szColumnName[STR_LEN]; SQLCHAR szTypeName[STR_LEN], szRemarks[REM_LEN]; SQLCHAR szColumnDefault[STR_LEN], szIsNullable[STR_LEN]; SQLINTEGER ColumnSize, BufferLength, CharOctetLength, OrdinalPosition; SQLSMALLINT DataType, DecimalDigits, NumPrecRadix, Nullable; SQLSMALLINT SQLDataType, DatetimeSubtypeCode; SQLRETURN retcode; SQLHSTMT hstmt; /* Declare buffers for bytes available to return */ SQLINTEGER cbCatalog, cbSchema, cbTableName, cbColumnName; SQLINTEGER cbDataType, cbTypeName, cbColumnSize, cbBufferLength; SQLINTEGER cbDecimalDigits, cbNumPrecRadix, cbNullable, cbRemarks; SQLINTEGER cbColumnDefault, cbSQLDataType, cbDatetimeSubtypeCode, cbCharOctetLength; SQLINTEGER cbOrdinalPosition, cbIsNullable; retcode = SQLColumns(hstmt, NULL, 0, /* All catalogs */ NULL, 0, /* All schemas */ (SQLWCHAR *) "C", SQL_NTS, /* CUSTOMERS table */ (SQLWCHAR *) NULL, 0); /* All columns */ if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Bind columns in result set to buffers */ SQLBindCol(hstmt, 1, SQL_C_CHAR, szCatalog, STR_LEN,&cbCatalog); SQLBindCol(hstmt, 2, SQL_C_CHAR, szSchema, STR_LEN, &cbSchema); SQLBindCol(hstmt, 3, SQL_C_CHAR, szTableName, STR_LEN,&cbTableName); SQLBindCol(hstmt, 4, SQL_C_CHAR, szColumnName, STR_LEN, &cbColumnName); SQLBindCol(hstmt, 5, SQL_C_SSHORT, &DataType, 0, &cbDataType); SQLBindCol(hstmt, 6, SQL_C_CHAR, szTypeName, STR_LEN, &cbTypeName); SQLBindCol(hstmt, 7, SQL_C_SLONG, &ColumnSize, 0, &cbColumnSize); SQLBindCol(hstmt, 8, SQL_C_SLONG, &BufferLength, 0, &cbBufferLength); SQLBindCol(hstmt, 9, SQL_C_SSHORT, &DecimalDigits, 0, &cbDecimalDigits); SQLBindCol(hstmt, 10, SQL_C_SSHORT, &NumPrecRadix, 0, &cbNumPrecRadix); SQLBindCol(hstmt, 11, SQL_C_SSHORT, &Nullable, 0, &cbNullable); SQLBindCol(hstmt, 12, SQL_C_CHAR, szRemarks, REM_LEN, &cbRemarks); SQLBindCol(hstmt, 13, SQL_C_CHAR, szColumnDefault, STR_LEN, &cbColumnDefault); SQLBindCol(hstmt, 14, SQL_C_SSHORT, &SQLDataType, 0, &cbSQLDataType); SQLBindCol(hstmt, 15, SQL_C_SSHORT, &DatetimeSubtypeCode, 0, &cbDatetimeSubtypeCode); SQLBindCol(hstmt, 16, SQL_C_SLONG, &CharOctetLength, 0, &cbCharOctetLength); SQLBindCol(hstmt, 17, SQL_C_SLONG, &OrdinalPosition, 0, &cbOrdinalPosition); SQLBindCol(hstmt, 18, SQL_C_CHAR, szIsNullable, STR_LEN, &cbIsNullable); } Не подскажите, как и откуда теперь извлечь нужную мне информацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 18:46 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
kondrakar/* Declare buffers for result set data */ Вся информация - здесь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 19:10 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovkondrakar/* Declare buffers for result set data */ Вся информация - здесь. Насколько я понял с помощью команд SQLBindCol в таблицу, указанную с помощью hstmt, помещается информация об искомой базе данных (szCatalog, szSchema, szTableName и т.д.). Или не так? Объясните, пожалуйста, "чайнику" на пальцах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 23:39 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
kondrakarОбъясните, пожалуйста, "чайнику" на пальцах. Эти команды указывают куда и в каком формате класть данные при вызове SQLFetch(). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 23:53 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
kondrakarНасколько я понял с помощью команд SQLBindCol в таблицу, указанную с помощью hstmt, помещается информация об искомой базе данных (szCatalog, szSchema, szTableName и т.д.). Или не так? Объясните, пожалуйста, "чайнику" на пальцах. Не так. Ты пришел в школу. В первый день учитель тебе говорит: "Домашнее задание записывать в дневник, решать задачки по математика надо в этой тетрадке а упражнения по языку надо делать в этой тетрадке". Ты хороший ученик и запомнил все инструкции с одного раза. На второй день учитель говорит: "А теперь вот это ваше домашнее задание, идите и делайте". Ты идешь и все делаешь. На третий день: "Идите и делайте", - ты опять идешь и делаешь и так день за днем пока четверть не кончится. Вот SQLBindCol() это указание учителя в какой тетрадке решать арифметику, а в какой разбирать предложение на части речи. А SQLFetch() это команда "делай домашку на сегодня". Записи в дневнике в этом примере могут быть аналогом для SQLBindParam(), до них ты еще доберешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 01:32 |
|
||
|
Количество и имена таблиц
|
|||
|---|---|---|---|
|
#18+
kondrakar, У тебя получился уже statement , далее нужно его fetch делать SQLFetch и будешь получать в буфере строки одну за одной таблицы (или что ты там попросил). После всего нужно statement закрыть и удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 11:59 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=75&tid=2020107]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 294ms |
| total: | 464ms |

| 0 / 0 |
