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

Вниз

Копирование TField   Найти похожие ветки 

 
Gilk   (2003-11-19 19:29) [0]

Как скопировать TField"ы из одного DataSet в другой в RunTime


 
sniknik   (2003-11-19 19:44) [1]

попробуй FieldDefs.Assign()


 
Vlad   (2003-11-19 19:48) [2]

Нда... И что с таким датасетом потом делать ?


 
Anatoly Podgoretsky   (2003-11-19 20:00) [3]

Vlad © (19.11.03 19:48) [2]
Это самая важная часть, может и не надо копировать.


 
sniknik   (2003-11-20 01:24) [4]

Vlad © (19.11.03 19:48) [2]
делаеш CreateDataSet и получаеш чистый датасет оторванный от данных, удобнее работать с таким датасетом чем со стринггридом к примеру.


 
Vlad   (2003-11-20 10:25) [5]


> sniknik © (20.11.03 01:24) [4]

У TDataSet нет метода CreateDataSet (не путай с ClientDataSet или ADODataSet). С ним нельзя работать в отрыве от БД.


 
-=GUEST=-   (2003-11-20 15:54) [6]

Допустим есть два датасета NewDataSet и TempDataset.
Копирование поля по имени "MyField" из TempDataset в NewDataSet

AddField(NewDataSet,TempDataset.FieldByName("MyField"));

procedure AddField(DataSet : TDataSet; Field : TField);
var
NewField : TField;
begin
//В зависимости от типа поля создаем соотв класс
if Field.ClassName = "TSmallintField" then NewField := TSmallIntField.Create(self)
else if Field.ClassName = "TDateField" then NewField := TDateField.Create(self)
else if Field.ClassName = "TStringField" then NewField := TStringField.Create(self) then
begin
NewField := TStringField.Create(self);
NewField.Size := Field.Size; //Не забудь, что некоторые типы имеют доп. сво-ва, кот. тоже нужно копировать
end;
...
Перебираем все возможные классы
...
NewField.FieldName := Field.FieldName;
NewField.Name := DataSet.Name + Field.FieldName;
NewField.DisplayLabel := Field.DisplayLabel;
NewField.DataSet := DataSet; //Эта строка и реализует копирование
end;



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
3-36504
vitalmoya
2003-11-22 10:02
2003.12.12
Перенос даных с Access в InterBase


3-36532
pashtet
2003-11-21 11:55
2003.12.12
QuickReport


3-36512
Урмат
2003-11-20 12:26
2003.12.12
кодировка dbf ADO


1-36597
Patrick
2003-12-01 18:36
2003.12.12
Динамический массив.


7-36854
Vahan
2003-10-05 23:28
2003.12.12
Как работать с PCI Из DELPHI





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