Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.06;
Скачать: CL | DM;

Вниз

Создание файла .DBF нужной версии   Найти похожие ветки 

 
uno-84   (2009-10-15 08:13) [0]

Доброе время суток! Подскажите пожалуйста, я создаю файл .DBF во время работы моего приложения след. образом

var
  MyTable: TTable
begin
   MyTable :=TTable.Create(nil);
   MyTable.TableType:= ttDBase;
   MyTable.DatabaseName:= FileDirr;
   MyTable.TableName:=DbfFilDair + "Param.dbf";
   MyTable.FieldDefs.Add("ID", ftAutoInc, 0, False);
   MyTable.FieldDefs.Add("ParamName",ftString, 50,False);
   MyTable.FieldDefs.Add("ParamValue", ftFloat ,0,False);
   MyTable.Open;
   MyTable.Insert;
   MyTable.Fields[1].Value := Value1;
   MyTable.Fields[2].Value := Value2;
   MyTable.Post;
   MyTable.Close;

у меня создается файл 7-ой версии, а как создать файл версией ниже к примеру третьей?
Заранее спасибо!


 
Медвежонок Пятачок ©   (2009-10-15 09:31) [1]

к примеру третьей?
property TableLevel : integer;

ps
Третий дибейс и ftAutoInc - такого не бывает.


 
uno-84   (2009-10-15 09:34) [2]

А какже тогда с автоматической постановкой Ключевого поля, если ftAutoInc не бывает


 
Медвежонок Пятачок ©   (2009-10-15 09:39) [3]

а никак же


 
sniknik ©   (2009-10-15 09:42) [4]

охота же вам с таким старьем возится...

насколько помню, всплывали тут раньше вопросы, есть проблема с таким созданием как у тебя, через таблицу, версия  берется только (или вообще игнорируется) из настроек драйвера, и решалось это заменой на создание через dbiCreateTable (справка по BDE сейчас отключена, лежит в Common Files\BDE).
хотя конечно, может плохо помню. (или у тех кто спрашивал были проблемы из-за другого. сам BDE не пользовался, т.е. тесты конечно делал, посмотреть, что это, а вот работать бог миловал.)


 
sniknik ©   (2009-10-15 09:44) [5]

> если ftAutoInc не бывает
оно бывает, но у версий постарше, или парадокса, и т.д. (открой database desktop да посмотри что он тебе за типы разрешает при создании определенной версии/типа таблицы)


 
Медвежонок Пятачок ©   (2009-10-15 09:47) [6]

версия  берется только (или вообще игнорируется) из настроек драйвера,

Нормально она берется из указанного левела.
Другое дело, если запросить третий, а потом в филддефсы добавить тип поддерживаемый только в более старшей версии.


 
Anatoly Podgoretsky ©   (2009-10-15 10:11) [7]

Это и говорит, что игнорируется и даже больше при Level=5 при неиспользовании полей более высокого уровня, ты не сможешь отличить 3 от 5. Поскольку в заголовке отсутсвует версия как таковая, определяется плясками с бубном, но определяется не номер уровня, а минимально необходимый уровень, более того даже dBase от FoxPro не отличается.


 
uno-84   (2009-10-15 11:30) [8]

Спасибо большое!!!


 
uno-84   (2009-10-16 10:47) [9]

Если кому-то нужна помощь в этом вопросе, то я решил эту проблему след. образом:
в BDE Administrator/Configuration/Drivers/Native/DBase
если проблема в версии ставиться Level = 3 или какой нужен(4,5, 6 и т.д.)
если в кодировке LangDriver = dbase Rus cp866(или та что необщодима для решения поставленной задачи)


 
sniknik ©   (2009-10-16 11:30) [10]

ну, я же говорил из настроек драйвера берется... не совсем еще склероз.

только решение там менять плохое, т.к. это действует на всех кто использует... т.е. если какой программе тоже на BDE (понимаю что счас маловероятно, аж 2 таких устаревших программ на одном компе... но всетаки) требуются файлы версией выше (поля с типами поновее)... ну понятно что будет (поддержка сверху вниз практически гарантирована, а вот снизу вверх, чтобы старая версия поддерживала новую как раз наоборот).
или если прога ставится кому то, а он, ну например из принципа (чтобы не объяснять реальных причин) хочет оставить другие настройки, и на что надо сказать имеет право т.к. его комп.

правильнее все таки через dbiCreateTable.


 
uno-84   (2009-10-16 11:41) [11]

Спору нет! У меня стоит новая версия, а начальство несколько не успевает за мной поэтому))) приходиться изгаляться временно понижая версию))


 
Anatoly Podgoretsky ©   (2009-10-16 11:54) [12]

> sniknik  (16.10.2009 11:30:10)  [10]

Основной недостаток БДЕ это его глобальность.
И решение правильное предлоложено делать это с помощью BDE (dbiCreateTable), а не BDE.VCL
Другой вариант использование шаблонов, при условии, что перестраивать БДЕ нельзя.



Страницы: 1 вся ветка

Текущий архив: 2009.12.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1255165531
Дмитрий_
2009-10-10 13:05
2009.12.06
Разъесните что нужно сделать


4-1224198326
Riply
2008-10-17 03:05
2009.12.06
Потоко-безопасный перебор модулей чужого процесса.


15-1254847110
DDDx
2009-10-06 20:38
2009.12.06
Компилятор Latex для Windows


15-1254898716
Александр Ильин
2009-10-07 10:58
2009.12.06
Восстановление файла


15-1254493923
ocean
2009-10-02 18:32
2009.12.06
Хочу наладонник с навигацией GPS покруче.