Форум: "Начинающим";
Текущий архив: 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