Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ClientDataSet как записать произвольный массив в базу данных (cds


я ©   (2011-09-29 14:02:00) 

Собственно Сабж. Акромя всего прочего, если использовать визуальные компоненты, то поле с типом ftArray создать нельзя, это даж не учитывая того, что если бы и можно было бы, то все равно не понятно как с ним работать.


OW   (2011-09-29 15:23:00) [1]

xml вообще не для хранения или чего-то еще - для передачи, отображения
Хоть что говорите.
Сделали файло, передали

for i := 0 to 5 do
begin
  a.Append;
  for j:= 0 to countparam -1 do //или так как-то , короче, думать надо далее
     a.Fields[j].AsInteger := (i+1)*2; // asЧто - тоже думать
  a.Post;
end;

--------


> я   (29.09.11 15:11) [10]

если blob хранить, плюс еще поля, типа основные характеристики картинки
там, размеры, цветность еще чего, что надо


Медвежонок Пятачок   (2011-09-29 15:16:00) [2]

ты какой-то странный.

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

жить попроще не пробовал?


я   (2011-09-29 15:11:00) [3]

хм, вообщем то идея возникла в связи с тем, что изначально в базе хранились BMP файлы. Но во первых мне не нужны все пиксели оттуда, а только какая то часть. А во вторых размер базы при хранении бмп достигает потрясающих размеров, даж не смотря на то, что сами бмп и близко столько не весят. Правда скорость чтения и расшифровки более критична, чем размер все таки. Если хранить в строке, то придется расшифровывать строку сначала, и еще вопрос, что быстрее пробежаться по бмп или по такой строке. может все таки хранить бмп (небольшие картинки...)


Медвежонок Пятачок   (2011-09-29 15:01:00) [4]

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


OW   (2011-09-29 14:58:00) [5]

function TForm1.CreateCDS(A: array of string; B: array of TFieldType): TClientDataSet;
var
 CDS: TClientDataSet;
 i: integer;
begin
 CDS := TClientDataSet.Create(nil);
 CDS.FieldDefs.BeginUpdate;
 for i := Low(A) to High(A) do
 begin
   CDS.FieldDefs.Add(A[i], B[i]);
 end;
 CDS.FieldDefs.EndUpdate;
 CDS.CreateDataSet;
 Result := CDS;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
 a: TClientDataSet;
 i: integer;
begin
 a := CreateCDS(['field1','field2'],[ftInteger, ftInteger]);
 for i := 0 to 5 do
 begin
   a.Append;
   a.Fields[0].AsInteger := (i+1)*2;
   a.Fields[1].AsInteger := (i+1)*3;
   a.Post;
 end;
 a.SaveToFile('c:\11.xml');
end;


Медвежонок Пятачок   (2011-09-29 14:53:00) [6]

массив структур, в структуре 2 параметра с типом Integer

<item par1="1" par2="2"/>
<item par1="3" par2="4"/>
...
<item par1="x" par2="y"/>


ftString


я   (2011-09-29 14:49:00) [7]


> только потому, что массив и ftArray похожи по смыслу?


ну как бэ раздел для начинающих, как бэ намекает. Так что если есть варианты я готов их послушать. Размер массива каждый раз разный. Есть идея сделать подчиненную таблицу, только она мне что-то не очень нравится.


Медвежонок Пятачок   (2011-09-29 14:43:00) [8]

нужно хранить массив структур

ок, нужно.
а зачем для этого поле ftArray?

только потому, что массив и ftArray похожи по смыслу?


я   (2011-09-29 14:41:00) [9]

БД просто в файле CDS хранится. в одном поле нужно хранить массив структур, в структуре 2 параметра с типом Integer. как то так. Если в визуальном ClientDataSet создаешь поле с типом ftArray то при нажатии Create DataSet вылазит ошибка, Invalid Parametr....


я   (2011-09-29 14:41:00) [10]


> зачем тебе поле, с которым тебе все равно непонятно как
> работать?


а мне нужно и поле и понятие как с ним работать.


Медвежонок Пятачок   (2011-09-29 14:39:00) [11]

зачем тебе поле, с которым тебе все равно непонятно как работать?


OW   (2011-09-29 14:21:00) [12]

что есть БД в этом случае?


Наверх

Титульная страница Поиск, карта сайта Написать письмо