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

Вниз

Передача данных в ClientDataSet.   Найти похожие ветки 

 
Nikola-2   (2004-11-29 08:03) [0]

При попытке передать данные или журнал изменений из одного ClientDataSet в другой,
ClientDataSet приёмник - остаётся пустым.

ClientDataSet1.Data:=ClientDataSet2.Data;
ClientDataSet1.Data:=ClientDataSet2.Delta;

Мне надо, чтобы работал, следующий код:

var DataPacket: OleVariant;

if ClientDataSet2.ChangeCount>0 begin
DataPacket:=ClientDataSet2.Delta;
ClientDataSet1.Data:=DataPacket;
end;

Всем спасибо.


 
Nikolay M. ©   (2004-11-29 09:56) [1]

Смотри в хелпе пример "Data, DataRequest, OnDataRequest Example".


 
Nikola-2   (2004-11-29 18:15) [2]

Так не работает!


 
Nikolay M. ©   (2004-11-30 09:39) [3]


> Так не работает!

Тема секса не раскрыта.
Что не работает? Как именно не работает?


 
Nikola-2   (2004-12-01 21:06) [4]

Николай, я не понял какое отношение  DataRequest имеет к Delta.
И каким образом можно просматривать Delta используя DataRequest.


 
Nikolay M. ©   (2004-12-02 10:24) [5]

Повторю

> Тема секса не раскрыта.


Ты сам-то понимаешь, что пытаешься спросить?
Сначала:

> передать данные или журнал изменений из одного ClientDataSet
> в другой

и

> ClientDataSet1.Data:=ClientDataSet2.Data;
> ClientDataSet1.Data:=ClientDataSet2.Delta;


Потом просто:

> Так не работает


И в завершение:

> каким образом можно просматривать Delta


Полный бардак. Могу посоветовать еще посмотреть в сторону CloneCursor, CloneSource, хотя я уже окончательно потерял суть проблемы.


 
Nikola-2   (2004-12-05 18:21) [6]

Вопрос один.
Если вопрос не понятен, то чё умничать?

Повторяю: почему не работает код:
ClientDataSet1.Data:=ClientDataSet2.Data;

или этот код:

ClientDataSet1.Data:=ClientDataSet2.Delta;

Который мог бы дать возможность просматривать журнал изменений в гриде.

И очередной совет: повторю какое отношение  CloneCursor и CloneSource  имеет к Delta.


 
Nikolay M. ©   (2004-12-05 20:56) [7]

Удалено модератором
Примечание: личная переписка (обмен любезностями почтой)


 
Nikola-2   (2004-12-05 21:15) [8]

Удалено модератором
Примечание: личная переписка (обмен любезностями почтой)


 
Nikola-2   (2004-12-07 20:21) [9]

Нашёл в хелпе данную тему.

Цитата из хелпа:

Assigning data directly

You can use the client dataset"s Data property to assign data to a client dataset from another dataset. Data is a data packet in the form of an OleVariant. A data packet can come from another client dataset or from any other dataset by using a provider. Once a data packet is assigned to Data, its contents are displayed automatically in data-aware controls connected to the client dataset by a data source component.

When you open a client dataset that represents server data or that uses an external provider component, data packets are automatically assigned to Data.

When your client dataset does not use a provider, you can copy the data from another client dataset as follows:

ClientDataSet1.Data := ClientDataSet2.Data;

Note

When you copy the Data property of another client dataset, you copy the change log as well, but the copy does not reflect any filters or ranges that have been applied. To include filters or ranges, you must clone the source dataset"s cursor instead.

If you are copying from a dataset other than a client dataset, you can create a dataset provider component, link it to the source dataset, and then copy its data:

TempProvider := TDataSetProvider.Create(Form1);
TempProvider.DataSet := SourceDataSet;
ClientDataSet1.Data := TempProvider.Data;
TempProvider.Free;

Note

When you assign directly to the Data property, the new data packet is not merged into the existing data. Instead, all previous data is replaced.

If you want to merge changes from another dataset, rather than copying its data, you must use a provider component. Create a dataset provider as in the previous example, but attach it to the destination dataset and instead of copying the data property, use the ApplyUpdates method:

TempProvider := TDataSetProvider.Create(Form1);
TempProvider.DataSet := ClientDataSet1;
TempProvider.ApplyUpdates(SourceDataSet.Delta, -1, ErrCount);
TempProvider.Free;

Код ClientDataSet1.Data := ClientDataSet2.Data; не работает, т. е. ClientDataSet1 остаётся пустым.

Проверил код:
TempProvider := TDataSetProvider.Create(Form1);
TempProvider.DataSet := SourceDataSet;
ClientDataSet1.Data := TempProvider.Data;
TempProvider.Free;

тоже не работает.


 
Nikola-2   (2004-12-10 08:34) [10]

Проблема решена.
Для ClientDataSet1 забыл удалять файл: DeleteFile(ClientDataSet1.FileName);

Приведённый ниже код, теперь работает.

if cdsSourse.ChangeCount>0 then
begin
DeleteFile(ClientDataSet1.FileName);
DataPac:=ClientDataSet2.Delta;
ClientDataSet1.Data:=DataPac;
end;



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

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

Наверх





Память: 0.48 MB
Время: 0.05 c
14-1103711177
ocean
2004-12-22 13:26
2005.01.09
Как оценить интерфейс программы?


14-1103618273
Роман
2004-12-21 11:37
2005.01.09
нужна разработка программы с БД


8-1094832335
SlavaZ
2004-09-10 20:05
2005.01.09
Воспроизведение *.mp3 без медиа плеера. помогите плиз


14-1103213204
alex145
2004-12-16 19:06
2005.01.09
сконверитровать файл *.dbf


6-1098348015
Дмитрий Ботвин
2004-10-21 12:40
2005.01.09
Ввод сетевого пароля





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