Главная страница
    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.043 c
5-1161949927
DevilDevil
2006-10-27 15:52
2007.10.21
Панели не сохраняются в DFM


15-1190192760
nikolaygor
2007-09-19 13:06
2007.10.21
Delphi: Сдвиг строчек в редакторе кода


2-1190381870
mike_zav
2007-09-21 17:37
2007.10.21
FreeAndNil


4-1176885230
Катеринка
2007-04-18 12:33
2007.10.21
Не работает ловушка....


4-1176881042
Грициан
2007-04-18 11:24
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский