Форум: "Основная";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Вниз#0 Запись переменной типа WideString в Image Найти похожие ветки
← →
balagur © (2007-08-06 06:38) [0]Бодрого времени суток!
D7, SQL EM 8.0
Есть задача - записать данные из переменной типа WideString в таблицу,столбец которой типа Image.
Все бы ничего, но в переменной есть символы #0, и потому в столбец записывается только часть переменной до этого символа.
Подскажите, каким образом можно обойти #0 и записать полностью переменную в столбец.
var Sss: WideString;
begin
...
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Insert;
ADOQuery1.FieldValues["Column"]:=Sss;
ADOQuery1.Post;
....
← →
Сергей М. © (2007-08-06 09:05) [1]Вместо
ADOQuery1.FieldValues["Column"]:=Sss;
используй блоб-стрим:
with ADOQuery1.CreateBlobStream("Column", bmWrite) do
try
WriteBuffer(PWideChar(Sss), Length(Sss)*2);
finally
Free;
end;
> ADOQuery1.Edit;
Это лишнее.
← →
Сергей М. © (2007-08-06 09:05) [2]WriteBuffer(PWideChar(Sss)^, Length(Sss)*2);
← →
LTYBC~ (2007-08-06 09:42) [3]
> WriteBuffer(PWideChar(Sss)^, Length(Sss)*2);
WriteBuffer(PWideChar(Sss)^, Length(Sss)*SizeOF(WideChar));
← →
balagur © (2007-08-06 10:18) [4]Спасиба, Сергей, добавить запись получилось...
Но вот какая ерунда получается - я пытаюсь записать одни данные, а при проверке ... select Column from Table where ... получаю совершенно другие.
Как такое возможно.
Т.е. делаю Write и тут же select и совершенно разные данные... :?
← →
Сергей М. © (2007-08-06 10:36) [5]with ADOQuery1.CreateBlobStream("Column", bmRead) do
try
SetLength(Sss, Size / SizeOf(WideChar));
ReadBuffer(PWideChar(Sss)^, Size);
finally
Free;
end;
← →
balagur © (2007-08-06 10:41) [6]ADOQuery1.Open;
with ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName("Column"), bmRead) do
try
SetLength(Sss, Size / SizeOf(WideChar));
ReadBuffer(PWideChar(Sss)^, Size);
finally
Free;
end;
ADOQuery1.Post;
Error: выделено
(Incompatible Types)
← →
Сергей М. © (2007-08-06 10:44) [7]Size div SizeOf(WideChar)
← →
Сергей М. © (2007-08-06 10:45) [8]
> ADOQuery1.Post;
>
А это зачем ?
Ты же в дан.случае не модифицируешь запись, а только читаешь ее ..
← →
balagur © (2007-08-06 10:48) [9]все равно та же ошибка +
на ReadBuffer ... UnsaeType "PWideChar"
← →
balagur © (2007-08-06 10:50) [10]сорри, старый кусок копипаст...
← →
Anatoly Podgoretsky © (2007-08-06 10:51) [11]Все указатели по определению не безопасные типы, в данном случае можно игнорировать.
← →
balagur © (2007-08-06 11:01) [12]Все. ЗАРАБОТАЛО!
Дело было в том, что я по спешке и кусок кода на чтение из буфера поставил перед записью )))
Еще раз БАЛЬШОЕ Спасиба :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c