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

Вниз

Не создается таблица в рантайм   Найти похожие ветки 

 
mamonth   (2003-01-05 12:44) [0]

Не получается перейти с существующей таблицы к созданию новой.
Проблема у меня такая: автоматический контроллер проводит измерения, которые надо записывать в файлы по дням, типа один день - один файл с измерениями. Так вот, при переходе на следующий день, я, понятно, создаю новую таблицу, а здесь вылазит ошибка, что такого файла не существует, хотя, я и сам об этом прекрасно знаю и, ради его создания вызываю метод CreateTable.
Что интересно - та же процедура создания таблицы, при условии, что программа только что запущена, работает отлично, а вот при переходе с уже созданного файла на новый глючит.

З.Ы. Такого точно нигде больше нет, неужели никто с таким не сталкивался?!

//Код запускается в
//1 - начале работы программы, если файл не существует
//2 - процессе работы, если происходит смена суток (глюк!)
Table1.Close;
//Директория с базой
Table1.DatabaseName:=ProgDir;
//Название таблицы
Table1.TableName:=getDstFileName;
//Тип таблицы
Table1.TableType:=ttDBase;
if not Table1.Exists then
begin
//Если файл не существует - создаем
{Создать поля}
with Table1.FieldDefs do
begin
Clear;
//Поле даты
Add("Date", ftDate, 0, true);
//Поле времени
Add("Time", ftTime, 0, true);
//Поля данных
for n:=1 to Length(DeviceName) do
begin
with AddFieldDef do
begin
Name := DeviceTableName[n-1];
DataType := ftFloat;
Size:=0;
//Количество знаков после запятой (не работает)
Precision:=2;
Required := False;
end;
end;
//Создать таблицу
Table1.CreateTable;
end;
end;
//Активировать таблицу
Table1.Open;


Наверное лишнего написал, но лучше лишнее, чем непонятно..
Глюк вылазит на Table1.CreateTable;
Мастера, помогите!!!


 
Mike Kouzmine   (2003-01-05 13:24) [1]

А если так
Table1.Close
Table1.free;
Table1 := TTable.Create;


 
Verg   (2003-01-05 13:25) [2]


> Table1.DatabaseName:=ProgDir;

По-моему, где-то здесь неверно.
Типа, DataBaseName - это имя базы данных, заданное у компонента TDataBase.DataBaseName, а не путь до каталога c базой данных.

Если уж компонент TDataBase не используешь, то задавай путь до таблицы в TableName, а поле DataBaseName оставляй пустым.


 
Mike Kouzmine   (2003-01-05 13:32) [3]

Table1.DatabaseName может иметь значение как ProgDir (алиас), так и c:\gdetotam


 
Verg   (2003-01-05 13:55) [4]


> Table1.DatabaseName может иметь значение как ProgDir (алиас),
> так и c:\gdetotam


Тогда уж c:\gdetotam \



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

Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.029 c
14-72531
123000
2003-01-07 22:18
2003.01.23
ICQ


1-72215
Fors
2003-01-11 22:21
2003.01.23
как к этой задаче добавить проверки.


1-72312
S.P.I.R.I.T
2003-01-15 06:31
2003.01.23
Снимок диска


1-72380
kserg@ukr.net
2003-01-10 17:57
2003.01.23
как к MainMenu в качестве SubMenu прилепить PopupMenu


8-72418
Yasha
2002-09-28 15:45
2003.01.23
Графика





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский