Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формат и размер dBase-поля 
:(
    Опции темы
Alex
Дата 12.11.2004, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Код

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;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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