Главная страница
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.011 c
8-1184697814
opoloXAI
2007-07-17 22:43
2009.12.06
MMSystem.pas => waveInGetNumDevs / waveInGetID


15-1255027446
Piter
2009-10-08 22:44
2009.12.06
Word не может открыть файл более 32 MB?


15-1254495687
Cyrax
2009-10-02 19:01
2009.12.06
Кто-нибудь знает, что такае "партномер" ?


2-1255967142
Nucer
2009-10-19 19:45
2009.12.06
Создание класса на основе TIdHTTP


2-1255770639
xyz
2009-10-17 13:10
2009.12.06
компоненты и панель