![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL запросы в XML через ClientDataSet
Galiaf © (2007-05-26 18:02:00)Пока писал на ado для access даже не использовал DataControls, а вот по сабжу появились проблемы, если я не собираюсь использовать TDBGrid или использовать толкьо для чтения, как же мне тогда добавлять, редактировать и удалять записи одним только ClientDataSet'ом? Я пытался прописать самый простой запрос в commandTex но даже он не работает.
Loginov Dmitry (2007-05-27 21:20:00) [21]Все делается как обычно. Пример:
procedure TForm1.btnSaveClick(Sender: TObject);
var
BF: TStream;
I: Integer;
begin
cds.FileName := 'd:\cds.xml';
cds.FieldDefs.Add('Img', ftGraphic);
cds.CreateDataSet;
cds.Open;
for I := 1 to 10 do
begin
cds.Append;
BF := cds.CreateBlobStream(cds.FieldByName('Img'), bmWrite);
Image1.Picture.Bitmap.SaveToStream(BF);
BF.Position := 0;
TBlobField(cds.FieldByName('Img')).LoadFromStream(BF);
BF.Free;
cds.Post;
end;
end;
procedure TForm1.btnLoadClick(Sender: TObject);
var
BF: TStream;
begin
cds.First;
cds.Next;
BF := cds.CreateBlobStream(cds.FieldByName('Img'), bmRead);
Image1.Picture := nil;
Image1.Picture.Bitmap.LoadFromStream(BF);
BF.Free;
end;
sniknik (2007-05-27 21:06:00) [22]> Прошу поделиться опытом.
опыт "лежит" в примерах дельфи, надо только его оттуда взять...
Galiaf (2007-05-27 20:46:00) [23]Извиняюсь за предыдущий вопрос, просто в последний раз когда я работал с mdb я добавлял и редактировал sql запросами, но чуть раньше я научился добавлять и редактировать компонентой tadotable, а у tclientdataset'а методы всё теже, так что вопрос по редактированию отпадает.
В данный момент проблема несколько другого плана, как сохранять изображения в таблице xml? Я создал поле image типа ftGraphic, в файле таблицы это поле описано следующим образом:
<FIELD attrname="image" fieldtype="bin.hex" SUBTYPE="Graphics"/>
При попытке записать изображение следующим образом:
cds.FieldValues['image']:=img.Picture.Bitmap;
получаю ошибку о несовместимости типов tbitmap и variant. В общем даже если и найду как сохранить рисунок, то не найду как его от туда достать. Уверен многие знают как это делается и как это делается правильно. Прошу поделиться опытом.
Galiaf (2007-05-27 09:18:00) [24]Хреново! Чтож я тогда взялся на нём писать??? Ну ладно, в любом случае там должна быть возможность добавления и изменения записей вручную, не подскажешь как это делается?
sniknik (2007-05-26 18:17:00) [25]sql запросы выполняет sql сервер/движок... сам по себе ClientDataSet не может их выполнять, только если есть провайдер данных/связь с вышеупомянутым (куда он запрос передаст, получив в ответ данные, или ошибку).
для XML насколько знаю никто еще sql сервера не написал...