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