Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (6)


Формат и размер dBase-поля

Поиск:
Код

procedure GetdBaseFieldTypes(t: TTable; var l: TStringList);
var
 pF: pFLDDesc;
 cProps: CURProps;
 p: pFLDDesc;
 i: Byte;
 w: Word;
 s: string;
 oldmode: LongInt;
begin
 Check(DbiGetCursorProps(t.Handle, cProps));
 Check(DbiGetProp(hDBIObj(t.Handle), curXLTMODE, oldmode, SizeOf(LongInt), w));
 Check(DbiSetProp(hDBIObj(t.Handle), curXLTMODE, LongInt(xltNONE)));
 try
   if MaxAvail < (cProps.iFields * SizeOf(FLDDesc)) then
     raise EOutofMemory.Create('Недостаточно памяти для процесса');
   GetMem(pF, (cProps.iFields * SizeOf(FLDDesc)));
   Check(DbiGetFieldDescs(t.Handle, pF));
   p := pF;
   for i := 1 to cProps.iFields do
     begin
       with p^ do
         begin
           s := IntToStr(iFldNum) + ' : ' + StrPas(szName) + ' : ';
           case iFldType of
             fldDBCHAR:
               begin { Char string, строка символов }
                 s := s + 'CHARACTER(' + IntToStr(iUnits1) + ')';
               end;
             fldDBNUM:
               begin { Number, число }
                 s := s + 'NUMBER(' + IntToStr(iUnits1) + ',' + InttoStr(iUnits2) + ')';
               end;
             fldDBMEMO:
               begin { Memo (blob), МEMO-BLOB-поле }
                 s := s + 'MEMO';
               end;
             fldDBBOOL:
               begin { Logical, лочическая величина }
                 s := s + 'LOGICAL';
               end;
             fldDBDATE:
               begin { Date, поле даты }
                 s := s + 'DATE';
               end;
             fldDBFLOAT:
               begin { Float, числа с плавающей точкой }
                 s := s + 'FLOAT(' + IntToStr(iUnits1) + ',' + InttoStr(iUnits2) + ')';
               end;
             fldDBLOCK:
               begin { Логический тип LOCKINFO }
                 s := s + 'LOCKINFO';
               end;
             fldDBOLEBLOB:
               begin { OLE object (blob), OLE-объект, BLOB-поле }
                 s := s + 'OLE';
               end;
             fldDBBINARY:
               begin { Binary data (blob), двоичные данные, BLOB-поле }
                 s := s + 'BINARY';
               end;
           else
             s := s + 'НЕИЗВЕСТНО';
           end;
         end;
       l.Add(s);
       Inc(p);
     end;
 finally
   Check(DbiSetProp(hDBIObj(t.Handle), curXLTMODE, oldmode));
   FreeMem(pF, (cProps.iFields * SizeOf(FLDDesc)));
 end;
end;
Автор: Eryk Bottomley






Просмотров: 1663

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную