Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Вниз

Создание файла .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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1255185739
Artem
2009-10-10 18:42
2009.12.06
Запись алгоритма?


15-1254947408
Юрий
2009-10-08 00:30
2009.12.06
С днем рождения ! 8 октября 2009 четверг


3-1230212249
Lera
2008-12-25 16:37
2009.12.06
Запрос и множество


15-1254746040
XXL
2009-10-05 16:34
2009.12.06
Что случилось с оборудованием от AMD ?


2-1255954503
Ivan8511
2009-10-19 16:15
2009.12.06
Разница между ADOTable и ADOQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский