Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.08;
Скачать: CL | DM;

Вниз

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

 
я   (2011-09-29 14:02) [0]

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


 
OW ©   (2011-09-29 14:21) [1]

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


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

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


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

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


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


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


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


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

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

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

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


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


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


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


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

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

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


ftString


 
OW ©   (2011-09-29 14:58) [8]

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 15:01) [9]

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


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

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


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

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

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

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


 
OW ©   (2011-09-29 15:23) [12]

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 хранить, плюс еще поля, типа основные характеристики картинки
там, размеры, цветность еще чего, что надо



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

Текущий архив: 2012.01.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
15-1316636981
Юрий
2011-09-22 00:29
2012.01.08
С днем рождения ! 22 сентября 2011 четверг


2-1317631902
alexdn
2011-10-03 12:51
2012.01.08
Разложить строку посимвольно


2-1316964668
Avpsol
2011-09-25 19:31
2012.01.08
Проблема с построением цикла


2-1317185032
я
2011-09-28 08:43
2012.01.08
Форматирование кода программы в среде разработки


15-1316377782
Юрий
2011-09-19 00:29
2012.01.08
С днем рождения ! 19 сентября 2011 понедельник