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

Вниз

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

 
Вова   (2012-10-12 04:50) [0]

Вообщем сделал я базу данных на DataSourse и DataSet (локальную, не серверную) и в процессе работы вызываю процедуры, типа таких:


   ClientDataSet3.Edit;
   ClientDataSet3.FieldByName("SearchX1").Value := coord.x1search;
   ClientDataSet3.FieldByName("SearchY1").Value := coord.y1search;
   ClientDataSet3.Post;


чтобы записывать данные в поля. Дата сеты привязаны к *.cds файлам на диске, т.е. в конечном итоге все сохраняется в них. Только вот в чем беда - при нештатном завершении процесса (ну например, если я убил через диспетчер задач свою программу) изменения произошедшие в текущем сеансе в файлы не попадают и соответственно не  сохраняются (

добавлением такой строки после Post ClientDataSet3.ApplyUpdates(10); надеялся я принудительно его заставить сохранить все в файл, но получил ошибку Missingdata provider or data packet,
а при обычном завершении программы все сохраняется как надо.
Ну еще у сохраняемого дата сета есть мастер дата сет, но в мастере нет изменений. Да и если вызвать ClientDataSet3Master.ApplyUpdates(10); ошибка будет та же только уже на попытке сохранить мастера, и там то я точно знаю что изменений 0
как быть?


 
kilkennycat ©   (2012-10-12 05:57) [1]


> ClientDataSet3.ApplyUpdates(10)

почему 10? лучше уж -1

> Missingdata provider or data packet


а сколько модулей и форм в программе?


 
Понг   (2012-10-12 06:21) [2]

To read from or write to a different file, use the LoadFromFile and SaveToFile methods instead. These methods can also be used to load and save data at times other than when the Active property changes.

ms-help://embarcadero.rs_xe3/libraries/Datasnap.DBClient.TClientDataSet.FileName.html


 
Вова   (2012-10-12 07:13) [3]


>
> > ClientDataSet3.ApplyUpdates(10)
>
> почему 10? лучше уж -1
>
> > Missingdata provider or data packet
>
>
> а сколько модулей и форм в программе?


10 от балды.

модулей и форм много, но процедуры сохранения, добавления и редактирования записей для конкретного датасета и его родителя находятся в модуле одной формы и все они на этой форме(датасеты) положены. хотя процедуры добавления и редактирования вызываются из других модулей.....а что это меняет?


 
Вова   (2012-10-12 07:14) [4]


> To read from or write to a different file, use the LoadFromFile
> and SaveToFile methods instead. These methods can also be
> used to load and save data at times other than when the
> Active property changes.
>
> ms-help://embarcadero.rs_xe3/libraries/Datasnap.DBClient.
> TClientDataSet.FileName.html


что то я сомневаюсь....мне же не затереть все новыми данными нужно, а изменения положить.


 
Вова   (2012-10-12 07:46) [5]

хм, да. похоже так работает.

ClientDataSet1.SaveToFile("E:\ххххх.cds");

ClientDataSet3.ApplyUpdates(10) - только для серверного варианта.


 
Вова   (2012-10-12 07:53) [6]

Я правильно понял, что в локальном варианте с датасетом, в ОЗУ хранится копия всей базы? и т.е. когда я делаю изменения и сохраняю, то не одна запись добавляется, а вся база сохраняется заного? Т.е. если база большая то это трындец....


 
AV ©   (2012-10-12 08:44) [7]

procedure TCustomClientDataSet.LoadFromFile(const FileName: string = "");
var
 Stream: TStream;

   Stream := TFileStream.Create(Self.FileName, fmOpenRead) else

     LoadFromStream(Stream);


 
Ega23 ©   (2012-10-12 08:45) [8]


> Т.е. если база большая то это трындец....

Возьми готовую СУБД (их вагон и тележка разных) и займись уже делом, вместо того, чтобы создавать себе трудности и потом пытаться их преодолеть.


 
Понг   (2012-10-12 09:58) [9]


> Т.е. если база большая то это трындец....


Полный.

ClientDataSet - это не база данных. Это табличка в памяти.


 
Вова   (2012-10-12 15:50) [10]


> Возьми готовую СУБД (их вагон и тележка разных) и займись
> уже делом, вместо того, чтобы создавать себе трудности и
> потом пытаться их преодолеть.


А какие конкретно вы бы могли посоветовать?


 
Inovet ©   (2012-10-12 15:53) [11]

> [10] Вова   (12.10.12 15:50)

Ты сначала скажи, что должно получиться.


 
Плохиш ©   (2012-10-12 16:02) [12]


> А какие конкретно вы бы могли посоветовать?

Ораклу, конечно же, тут без вариантов.


 
Вова   (2012-10-12 17:41) [13]


> Ты сначала скажи, что должно получиться.


Уже получилось ) Программа сохраняет картинки и описание их, некоторые данные о своей работе (несколько таблиц с разными данными). И пользуется этим по ходу работы. Программа не учетная и для личного пользования, поэтому покупать SQL или Oracle было бы как то некруто ) Кроме того важно чтобы разворачивание системы было как можно проще(скопировал, запустил и понеслась). На данный момент база не большая, хотя уже вся эта радость занимает под 30 мб в оперативке, а раздувать нежелательно, т.к. там много чего еще запущено и память не резиновая. Вообщем о многих тысячах и миллионах записей в базе речь не идет. Скорей от сотен до тысячи (сотни 2 уже есть). На самом деле табличка в памяти пока в принципе устраивает, но есть опасения что это может изменится с ростом базы. Так что СУБД если и нужна то простенькая.


 
Inovet ©   (2012-10-12 17:50) [14]

> [13] Вова   (12.10.12 17:41)

ФБ ембедед


 
AV ©   (2012-10-13 15:14) [15]

http://www.oracle.com/technetwork/ru/database/express-edition/overview/index.html
http://www.microsoft.com/ru-ru/download/details.aspx?id=20610
+ простой Access



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

Форум: "Начинающим";
Текущий архив: 2013.04.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
15-1356193225
alexdn
2012-12-22 20:20
2013.04.21
asp.net


15-1356292928
Павел Калугин
2012-12-24 00:02
2013.04.21
Опять анкеты?


2-1350085369
Вова
2012-10-13 03:42
2013.04.21
Утечка памяти DataSet


2-1350023659
Irisss
2012-10-12 10:34
2013.04.21
Методы подбора значения


15-1356278161
Baks
2012-12-23 19:56
2013.04.21
Видеокамеру хочу купить





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