Форум: "Базы";
Текущий архив: 2016.02.28;
Скачать: [xml.tar.bz2];
ВнизОшибка при сохранении в blob Найти похожие ветки
← →
Geo (2011-06-03 16:01) [0]Добрый день друзья. Не могу никак понять, в чем ошибка
вот код
procedure TDiary_form.BitBtn1Click(Sender: TObject);
var
bs: TStream;
table1memo: TBlobField;
begin
CreateUn("SELECT * FROM DIARY_SURVEY");
bs := nil;
with Login_form.ADOQuery1 do
try
open;
//first;
edit; //stream:= ibquery1.CreateBlobStream(ibquery1.FieldByName("messagebody") as TBlobField, bmRead);
bs := Login_form.ADOQuery1.CreateBlobStream(Login_form.ADOQuery1.FieldByName("MORE") as TBlobField, bmwrite);
Richedit1.plaintext := false;
Richedit1.Lines.Savetostream(bs);
edit;
post;
finally
bs.free;
close;
end;
end;
Ошибка наpost;
DataSet not edit or inset mode
Пробовал по-разному эту процедуру реализовать, все никак
← →
Geo (2011-06-03 16:17) [1]решил проблему сам, все оказалось проще, чем я думал
with Login_form.ADOQuery1 do
begin
edit;
FieldByName("MORE").Value:=RichEdit1.Lines.Text;
post;
end
и все) а почему та ошибка появлялась, все равно интересно, при разработке пользовался вот этой статьей http://www.kansoftware.ru/?tid=3789
где исходный код (без моих изменений):procedure TForm1.BtnPutClick(Sender: TObject);
var
bs: TBlobStream;
begin
bs := nil;
with Table1 do
try
open;
first;
edit;
bs := TBlobStream.Create(table1memo, bmwrite);
Richedit1.plaintext := false;
Richedit1.Lines.Savetostream(bs);
post;
finally
bs.free;
close;
end;
end;
← →
Geo (2011-06-03 16:42) [2]Хм... нет, так не пойдет, нужно сохранить с форматированием, не подскажите как?
← →
Geo (2011-06-03 17:45) [3]Также если делать
begin
ms:= TMemoryStream.Create;
Richedit1.Lines.SaveToStream(ms);
AdoTable1.Edit;
bs:= AdoTable1.CreateBlobStream(AdoTable1.FieldByName("MORE") as TBlobField, bmwrite);
Richedit1.Lines.Savetostream(ms);
TBlobField(AdoTable1.FieldByName("MORE")).LoadFromStream(ms);
AdoTable1.Edit;
AdoTable1.Post;
bs.Free;
ms.Free;
та же ошибка AdoTable1: DataSet not edit or insert mode
← →
clickmaker © (2011-06-03 17:54) [4]а смысл 2-й раз AdoTable1.Edit вызывать?
← →
Geo (2011-06-03 18:03) [5]Это я думал, может быть одна из функций меняет режим доступа. Но в любом случае возникает эта ошибка.
← →
clickmaker © (2011-06-03 18:06) [6]> одна из функций меняет режим доступа
так бессмысленно менять режим доступа уже после этого самого доступа
← →
clickmaker © (2011-06-03 18:10) [7]Запись именно редактируется, а не Insert?
← →
Geo (2011-06-03 18:27) [8]да, редактируется, но на всякий случай пробовал и режим AdoTable1.Insert. безразультатно.
← →
Geo (2011-06-03 19:31) [9]Никто не подскажет, почему
ms:= TMemoryStream.Create;
Richedit1.Lines.SaveToStream(ms);
Richedit1.Lines.LoadFromStream(ms);
дает пустой Richedit1?
← →
sniknik © (2011-06-03 20:09) [10]позиция в конце?
← →
Geo (2011-06-03 20:22) [11]ага, уже понял в чем была эта ошибка... спасибо
← →
Geo (2011-06-03 20:41) [12]Но глобальная проблема также осталась..
← →
Geo (2011-06-03 21:17) [13]Потратил целый день, но нашел решение
procedure TDiary_form.Button2Click(Sender: TObject);
var
blob: TStream;
ms: TMemoryStream;
begin
AdoTable1.Edit;
blob := AdoTable1.CreateBlobStream(AdoTable1.FieldByName("MORE"), bmWrite);
try
blob.Seek(0, soFromBeginning);
ms:= TMemoryStream.Create;
Richedit1.Lines.Savetostream(ms);
ms.Position := 0;
try
blob.CopyFrom(ms, ms.Size);
finally
ms.Free
end;
finally
blob.Free
end;
AdoTable1.Post;
end;
Перерыл кучу неработающих исходников
← →
Geo (2011-06-03 21:21) [14]Спасибо всем, кто пытался помочь, надеюсь этот пост поможет еще кому-то)
В начале очищаем переменные-а потом уже post
← →
sniknik © (2011-06-03 22:29) [15]> надеюсь этот пост поможет еще кому-то)
надеюсь что нет...
насколько же все проще с датасетом... не нужно днями рыть ради элементарного... просто в хелп заглянуть и все, и где хочешь(/логичнее) там и postvar
ms: TMemoryStream;
begin
ms:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(ms);
ADODataSet1.Edit;
TBlobField(ADODataSet1.FieldByName("ImField")).LoadFromStream(ms);
ADODataSet1.Post;
finally
ms.Free;
end;
end;
← →
Johnmen © (2011-06-03 23:24) [16]Озорник, однако
http://www.sql.ru/forum/actualthread.aspx?tid=856341
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2016.02.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c