Конференция "Начинающим" » ADOTable.LoadFromFile(...) [D7, MsAccess]
 
  • Leon-Z © (20.05.11 17:45) [0]
    После выполнения ADOTable.LoadFromFile(...) данные отображаются
    в DBGrid'е.
    Перезапускаю приложение и данные пропадают.
    Получается что в таблице, при вызове ADOTable.LoadFromFile(...),
    данные не сохраняются.
    Как сохранить ?

    Подскажите, пожалуйса.
  • Медвежонок Пятачок © (20.05.11 17:51) [1]
    чтобы сохранить данные, не выгружай программу и не выключай компьютер.
  • Медвежонок Пятачок © (20.05.11 17:58) [2]
    данные не сохраняются

    Странная печаль.
    А где они должны были сохраниться?
    В каком из многочисленных твоих mdb файлов, и почему именно в них, а не на сервере пентагона например?
  • Palladin © (20.05.11 18:46) [3]

    > Leon-Z ©   (20.05.11 17:45) 

    и файл пустой чтоли?
  • Leon-Z © (20.05.11 18:49) [4]
    Я вызываю ADOTable.loadFromFile(...) и данные загружаются в датасет и
    отображаются на экране.

    А дальше мне нужно сохранить эти данные в физическую таблицу, чтобы
    при следующем запуске программы, данные уже были в таблице,
    загрузились в датасет и отобразились в гриде.
  • sniknik © (20.05.11 18:52) [5]
    > А дальше мне нужно сохранить эти данные в физическую таблицу
    а кто этому препятствует? нужно, сохрани. почему в вопросе ту ждешь сохранения от чтения в память?
  • Leon-Z © (20.05.11 18:56) [6]

    > Palladin ©   (20.05.11 18:46) [3]

    Нет, файл сохраняется так:

     ADOTable.SaveToFile(...);


    Далее все данные из таблицы удаляю:

     while not ADOTable.Eof do
       ADOTable.Delete;


    Теперь нужно восстановить данные из файла, который был сохранен на
    первом этапе:

     ADOTable.LoadFromFile(...);


    Вот здесь проблема, данные загрузятся в датасет, а в физическую
    таблицу не попадут, т.е. при следующем запуске программы
    датасет будет пустой.
    Как сохранить данные в эту "физическую таблицу на диске" ?
  • sniknik © (20.05.11 21:05) [7]
    > Вот здесь проблема
    проблема была еще до этого, и не одна...
    первая проблема - ADOTable
    вторая проблема - бессмысленные операции
    сохранил в файл
    удалил из рекордсета
    загрузил в рекордсет из файла
    ???
    ничего не произошло, действия "взаимоубились"

    типа, "надо дойти до аптеки, она на той стороне улицы, перехожу улицу туда, потом обратно, проверяю, опять не около аптеки... шо делать?"

    > таблицу не попадут, т.е. при следующем запуске программы датасет будет пустой.
    ну если изначально он был пустой, то естественно

    > Как сохранить данные в эту "физическую таблицу на диске" ?
    ???
    > Нет, файл сохраняется так:
    > ADOTable.SaveToFile(...);
    !!!
  • Плохиш © (20.05.11 21:17) [8]

    > Leon-Z ©   (20.05.11 18:56) [6]

    Функционал метода LoadFromFile описан в справке, почему вы от него ждёте чего-то другого не понятно.
  • Palladin © (20.05.11 22:55) [9]
    да ему из файла в субд перенести надо... синхронизация тк скть.. проблемы у него в формализацией мыслей )
  • Медвежонок Пятачок © (20.05.11 23:13) [10]
    Я кажется нашел решение.
    Нужна кнопка с пустым обработчиком.
    Если ее нажать миллион раз, то программа сама догадается, что после загрузки из файла надо наконец-то пройтись по всем загруженным записям и сделать инсерты в физическую таблицу базы данных.
  • Германн © (21.05.11 02:23) [11]
    А вот на кой фиг в TADODataSet вообще ввели методы LoadfromFile, SaveToFile? Особенно Load...
    Только новичков путают. В клаcсическом TDataSet таких методов нет.
  • Anatoly Podgoretsky © (21.05.11 09:47) [12]
    > Германн  (21.05.2011 02:23:11)  [11]

    У обычного датасет и рекордсета тоже нет
  • sniknik © (21.05.11 10:50) [13]
    > Только новичков путают.
    их путает понятие хххTable т.к. из прошлого BDE по чему до сих по куча учебников, это отображение файла на диске, вот и относятся к нему также.
    у ADODataSet тоже есть такой вариант работы, но все таки, и в основном это рекордсет в памяти... и никакой путаницы, вот у стринглист есть такие методы, и кто нибудь ждет, что загрузив в стринглист текст он окажется на диске в файле?

    > В клаcсическом TDataSet таких методов нет.
    клаcсический он логически предназначался для другого. даже у query это было "отображение на файл", пусть и временный.

    а методы полезные, постоянно пользуюсь.

    p.s. интересно, а если убрать, ВСЕ что путает новичков (/не читающих хелр) ЧТО останется? и можно ли будет на том что останется написать программу (хелло ворд не считаем)?
  • sniknik © (21.05.11 10:52) [14]
    > У обычного датасет и рекордсета тоже нет
    ну, с "нятяжкой" у него рекордсетом можно считать таблицу на диске.
  • Anatoly Podgoretsky © (21.05.11 11:21) [15]
    > sniknik  (21.05.2011 10:52:14)  [14]

    Это датасет.
    Метод применим только для inMemoryDataset - ClientDataset и оторваный
    recordset

    Зы у Query есть метод loadFromFile, но для другого
 
Конференция "Начинающим" » ADOTable.LoadFromFile(...) [D7, MsAccess]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]