-
После выполнения ADOTable.LoadFromFile(...) данные отображаются в DBGrid'е. Перезапускаю приложение и данные пропадают. Получается что в таблице, при вызове ADOTable.LoadFromFile(...), данные не сохраняются. Как сохранить ?
Подскажите, пожалуйса.
-
чтобы сохранить данные, не выгружай программу и не выключай компьютер.
-
данные не сохраняются
Странная печаль. А где они должны были сохраниться? В каком из многочисленных твоих mdb файлов, и почему именно в них, а не на сервере пентагона например?
-
> Leon-Z © (20.05.11 17:45)
и файл пустой чтоли?
-
Я вызываю ADOTable.loadFromFile(...) и данные загружаются в датасет и отображаются на экране.
А дальше мне нужно сохранить эти данные в физическую таблицу, чтобы при следующем запуске программы, данные уже были в таблице, загрузились в датасет и отобразились в гриде.
-
> А дальше мне нужно сохранить эти данные в физическую таблицу а кто этому препятствует? нужно, сохрани. почему в вопросе ту ждешь сохранения от чтения в память?
-
> Palladin © (20.05.11 18:46) [3]
Нет, файл сохраняется так:
ADOTable.SaveToFile(...);
Далее все данные из таблицы удаляю:
while not ADOTable.Eof do
ADOTable.Delete;
Теперь нужно восстановить данные из файла, который был сохранен на первом этапе:
ADOTable.LoadFromFile(...);
Вот здесь проблема, данные загрузятся в датасет, а в физическую таблицу не попадут, т.е. при следующем запуске программы датасет будет пустой. Как сохранить данные в эту "физическую таблицу на диске" ?
-
> Вот здесь проблема проблема была еще до этого, и не одна... первая проблема - ADOTable вторая проблема - бессмысленные операции сохранил в файл удалил из рекордсета загрузил в рекордсет из файла ??? ничего не произошло, действия "взаимоубились"
типа, "надо дойти до аптеки, она на той стороне улицы, перехожу улицу туда, потом обратно, проверяю, опять не около аптеки... шо делать?"
> таблицу не попадут, т.е. при следующем запуске программы датасет будет пустой. ну если изначально он был пустой, то естественно
> Как сохранить данные в эту "физическую таблицу на диске" ? ??? > Нет, файл сохраняется так: > ADOTable.SaveToFile(...); !!!
-
> Leon-Z © (20.05.11 18:56) [6]
Функционал метода LoadFromFile описан в справке, почему вы от него ждёте чего-то другого не понятно.
-
да ему из файла в субд перенести надо... синхронизация тк скть.. проблемы у него в формализацией мыслей )
-
Я кажется нашел решение. Нужна кнопка с пустым обработчиком. Если ее нажать миллион раз, то программа сама догадается, что после загрузки из файла надо наконец-то пройтись по всем загруженным записям и сделать инсерты в физическую таблицу базы данных.
-
А вот на кой фиг в TADODataSet вообще ввели методы LoadfromFile, SaveToFile? Особенно Load... Только новичков путают. В клаcсическом TDataSet таких методов нет.
-
> Германн (21.05.2011 02:23:11) [11]
У обычного датасет и рекордсета тоже нет
-
> Только новичков путают. их путает понятие хххTable т.к. из прошлого BDE по чему до сих по куча учебников, это отображение файла на диске, вот и относятся к нему также. у ADODataSet тоже есть такой вариант работы, но все таки, и в основном это рекордсет в памяти... и никакой путаницы, вот у стринглист есть такие методы, и кто нибудь ждет, что загрузив в стринглист текст он окажется на диске в файле?
> В клаcсическом TDataSet таких методов нет. клаcсический он логически предназначался для другого. даже у query это было "отображение на файл", пусть и временный.
а методы полезные, постоянно пользуюсь.
p.s. интересно, а если убрать, ВСЕ что путает новичков (/не читающих хелр) ЧТО останется? и можно ли будет на том что останется написать программу (хелло ворд не считаем)?
-
> У обычного датасет и рекордсета тоже нет ну, с "нятяжкой" у него рекордсетом можно считать таблицу на диске.
-
> sniknik (21.05.2011 10:52:14) [14]
Это датасет. Метод применим только для inMemoryDataset - ClientDataset и оторваный recordset Зы у Query есть метод loadFromFile, но для другого
|