Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.04 c
2-1191265539
Farel
2007-10-01 23:05
2007.10.21
Blob


15-1190566202
Турбомер
2007-09-23 20:50
2007.10.21
Куда и как обратиться?


3-1178602542
Alex_AA
2007-05-08 09:35
2007.10.21
Поиск в Excel


2-1191129666
SveTTT
2007-09-30 09:21
2007.10.21
Курсор по SetFocus


6-1171959552
santey
2007-02-20 11:19
2007.10.21
Как установить статический ип на сетевом адаптере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский