Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать тип и размер поля таблицы 
V
    Опции темы
Alca
Дата 6.3.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Узнать тип и размер поля таблицы? (Builder C++ 6.0, ADO, Access 2003)

Это сообщение отредактировал(а) Alca - 6.3.2008, 18:55


--------------------
PM WWW ICQ Skype Jabber   Вверх
jonie
Дата 6.3.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 4
Всего: 118



http://databases.aspfaq.com/schema-tutoria...or-a-table.html
может поможет
а вообще можно сделать SELECT из системной таблицы (только я хз какая таблица)... вспомню напишу)
вот туда загляни : http://www.techonthenet.com/access/databas...w_systables.php


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Alca
Дата 20.3.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Код

void __fastcall TfrmMain::btnTablesClick(TObject *Sender) {
    TFieldDef *pNewDef;

    TStringList *pTableList = new TStringList;
    TStringList *pFieldList = new TStringList;
    conMain->GetTableNames(pTableList, false);

    Memo1->Lines->Clear();
    //таблицы
    for (int i = 0; i <  pTableList->Count; i ++) {
        Memo1->Lines->Add("");
        Memo1->Lines->Add("***** " + pTableList->Strings[i] + " *****");
        //поля
        conMain->GetFieldNames(pTableList->Strings[i], pFieldList);

        try {
            ADODataSet1->Close();
            ADODataSet1->CommandText = "select * from " + pTableList->Strings[i];
            ADODataSet1->Open();
        } catch (...) {
            continue;
        }                                            

        for (int j = 0; j < pFieldList->Count; j ++) {
            try {
                AnsiString D = "";

                pNewDef = ADODataSet1->FieldDefs->Items[j];
                switch (pNewDef->DataType) {
                    case ftUnknown:     D = "Unknown";     break;
                    case ftString:      D = "String";      break;
                    case ftSmallint:    D = "Smallint";    break;
                    case ftInteger:     D = "Integer";     break;
                    case ftWord:        D = "Word";        break;
                    case ftBoolean:     D = "Boolean";     break;
                    case ftFloat:       D = "Float";       break;
                    case ftCurrency:    D = "Currency";    break;
                    case ftBCD:         D = "BCD";         break;
                    case ftDate:        D = "Date";        break;
                    case ftTime:        D = "Time";        break;
                    case ftDateTime:    D = "DateTime";    break;
                    case ftBytes:       D = "Bytes";       break;
                    case ftVarBytes:    D = "VarBytes";    break;
                    case ftAutoInc:     D = "AutoInc";     break;
                    case ftBlob:        D = "Blob";        break;
                    case ftMemo:        D = "Memo";        break;
                    case ftGraphic:     D = "Graphic";     break;
                    case ftFmtMemo:     D = "FmtMemo";     break;
                    case ftParadoxOle:  D = "ParadoxOle";  break;
                    case ftDBaseOle:    D = "DBaseOle";    break;
                    case ftTypedBinary: D = "TypedBinary"; break;
                    case ftCursor:      D = "Cursor";      break;
                    case ftFixedChar:   D = "FixedChar";   break;
                    case ftWideString:  D = "WideString";  break;
                    case ftLargeint:    D = "Largeint";    break;
                    case ftADT:         D = "ADT";         break;
                    case ftArray:       D = "Array";       break;
                    case ftReference:   D = "Reference";   break;
                    case ftDataSet:     D = "DataSet";     break;
                    case ftOraBlob:     D = "OraBlob";     break;
                    case ftOraClob:     D = "OraClob";     break;
                    case ftVariant:     D = "Variant";     break;
                    case ftInterface:   D = "Interface";   break;
                    case ftIDispatch:   D = "IDispatch";   break;
                    case ftGuid:        D = "Guid";        break;
                    case ftTimeStamp:   D = "TimeStamp";   break;
                    case ftFMTBcd:      D = "FMTBcd";      break;
                    default:            D = "???";         break;
                }
                                            
                Memo1->Lines->BeginUpdate();
                Memo1->Lines->Add("    Имя:            " + pFieldList->Strings[j]);
                Memo1->Lines->Add("    Тип данных:     " + D);
                Memo1->Lines->Add("    Размер:         " + pNewDef->Size);
                Memo1->Lines->Add("    Точность:       " + pNewDef->Precision);
                Memo1->Lines->Add("    Обязательность: " + int(pNewDef->Required));
                Memo1->Lines->EndUpdate();

            } catch (Exception &E) {
                Memo1->Lines->Add(
                    "    " + pFieldList->Strings[j] +
                    " [" + E.Message + "]"
                );
            }
        }
    }

    delete pFieldList;
    delete pTableList;
}



--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.