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

Вниз

#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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
15-1190382560
мастерПакость
2007-09-21 17:49
2007.10.21
проблемы с HTML


6-1171203227
Grol
2007-02-11 17:13
2007.10.21
Узнать инфу о компах в сети!


15-1190197815
Sergey13
2007-09-19 14:30
2007.10.21
Сегодня самый известный сетевой символ — смайлик — отмечает юбиле


2-1191116003
trigger
2007-09-30 05:33
2007.10.21
данные за последние 5 минут


2-1190971347
Gigik
2007-09-28 13:22
2007.10.21
Двоичные файлы