Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE3

Автор: deks
Дата сообщения: 20.12.2012 17:43
MagistrAnatol

Ну - понять как IBExpert правильно работает с BLOB полями очень просто: запихните текст в ваше BLOB поле руками, через интерфейс, а потом создайте скрипт по БД, в котором есть экспорт BLOB-полей.

IBExpert сам напишет правильный скрипт.

Ну и : _http://www.sql.ru/forum/actualthread.aspx?tid=259862
Автор: MagistrAnatol
Дата сообщения: 21.12.2012 08:38
deks
понятно,пасибо, буду прогу ваять
Автор: MagistrAnatol
Дата сообщения: 24.12.2012 11:29
Возвращаясь к баранам - какая длинна строки для блоб поля?
строка длинной 3806 символов в блобе файребирда 2,5,1 обрезается при комите???
или я что-то не донастроил в базе???


Добавлено:
Блин , проблема не в длине строки а в украинском апострофе и в словах где все буквы большие
С каких пор блобу не пофиг что в него запихнули????
Автор: Arioch1
Дата сообщения: 24.12.2012 12:12
EМНИП в Firebird длина VARCHAR ограничена кажется 32КБ без одного символа либо одним размером страницы, что меньше.
При этом длинна одного символа в кодировке UTF-8 - 4 байта.

Блобы же - смотря как к ним обращаться, вроде бы в FB их можно читать-писать как если бы они были текстовыми - но тогда видимо при передаче и происходит обрезание.

ДУмаю подробнее лучше спрашивать с конкретным кодом в форуме по ФБ на dir.gmane.org или sql.ru
Автор: deks
Дата сообщения: 24.12.2012 12:13
MagistrAnatol

Вообще, блоб должен быть просто stream, данные которого храняться в страницах БД. Но у Firebird есть тип блоба - текст, а для этого типа нужно указать правильную CodePage, иначе будут проблемы при сохранении данных. Ну и багов могут добавить клиентские библиотеки - в них в свойствах коннекта тоже нужно code page правильно ставить.

В общем, utf-8 наше все!)
Автор: Arioch1
Дата сообщения: 24.12.2012 12:14
у блобов может быть разные подтип, включая текстовый с кодировкой

но вообще скорее действительно скрипт или билиотека доступа косячат
Автор: MagistrAnatol
Дата сообщения: 24.12.2012 14:00
Подпип блоба текст, кодировка утф-8 - очень сильно подозреваю , что все приколы из-за прекрасного ворда - текст копировал из него, а у ворда очень много приколов с форматированием - на екране все норм. а печатается фиг знает что.Может и сейчас что-то затянулось
Автор: DumnedAspid
Дата сообщения: 24.12.2012 15:00
Кто подскажет хорошую статью для переноса проектов с 2007 на XE3?
Автор: Arioch1
Дата сообщения: 24.12.2012 15:05
1) читай про Юникод в дельфи - это будет основной нежданчик, который будет проявляться если раньше срезали углы (например не домножали на sizeof(char) )

2) выясни какие библиотеки используются в Дельфи и ищи или им замену или их обновлённые версии
Автор: DumnedAspid
Дата сообщения: 26.12.2012 08:52
Arioch1, благодарю
Автор: relictus
Дата сообщения: 30.12.2012 09:11
Может кто-нибудь закинуть на любой файлообменник скомпилированный под Delphi XE3 пример из ...\Samples\Delphi\VCL\Direct2D ? Был бы премного благодарен
PS + исходники, плиз
Автор: HeMet
Дата сообщения: 30.12.2012 19:05
relictus
_http://rghost.ru/42629009
Автор: zertyuiop
Дата сообщения: 01.01.2013 20:35
У меня такая проблема: при вызове Help'а пишет, что объект неправильно инициализирован. Что делать?
Автор: zertyuiop
Дата сообщения: 04.01.2013 13:07
Нашел, что хелп не регистрируется, в чем может быть проблема?
Автор: SolidSnakeRU
Дата сообщения: 04.01.2013 21:56
Смотрю на демки FM, печально как-то.
В статьях про FM говорится, что когда поддерживается железом, FM использует GPU.
Всетаки, FM и быстрая отрисовка на GPU это реально?
И где посмотреть как это реализовать, если их же демки выглядят не презентабельно.
Хорошо бы иметь демку с флажком EnableGPU
Автор: DeathMAD
Дата сообщения: 05.01.2013 11:38
Кто нибудь знает как заставить Document Explorer показывать таки хелп под Win8? А не выводить жёлтое сообщение.
Автор: HeMet
Дата сообщения: 05.01.2013 11:52
SolidSnakeRU
Когда доступен, да, использует.
А непрезентабельность его, лично для меня, заключается в:
1. Текст нечеткий, если не юзать GDI+, а если юзать, то никакого GPU.
2. Тормозной код, который сводит на нет плюсы GPU.
3. Баги.

А в чем для Вас?

Короче говоря, он сырой (лучше чем первая версия, но все равно сыро). Поэтому чтобы добиться приемлемого поведения нужно лезть в его потроха и править-править-править.

Что мне в нем нравится так это то, что потенциально он гибче VCL, ну и Custom Draw 2.0 (они же Стили).
Автор: deks
Дата сообщения: 09.01.2013 19:05
DeathMAD

Именно под win8 не знаю. Но раньше с chm файлами была проблема в настройках безопасности - если файл открывался с сетевого ресурса! Нужно было копировать его на локальный диск
Автор: VadimLou
Дата сообщения: 10.01.2013 12:59
chm full access:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=-


Для Wow6432:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=-


ps:

"UrlAllowList"=-

это значит удалить
Автор: Aleksandr N
Дата сообщения: 10.01.2013 16:40
Подскажите решение, хотя возможно немного не туда пишу.
Наткнулся на такую проблему при компиляции под 64 бит.
Есть две записи типа:

Paaa = ^aaa;
aaa = record
aaaa: Integer;
end;

bbb = record
bbbb: Paaa;
end;

В 32-битном приложении размер SizeOf(bbb) равен 4, а в 64-битном равен 8. Понятно, что это из-за размера Pointer. В 64-битном он равен 8.
Вопрос: как сделать чтобы в 64-битном приложении размер bbb был бы равен 4, а не 8.
Записи должны иметь именно такой вид, это связано с обработкой OBJ файлов.
Спасибо.
Автор: DeathMAD
Дата сообщения: 10.01.2013 19:14
Лечение моей проблемы

REGEDIT4

[HKEY_CLASSES_ROOT\.htm]
"Content Type"="text/html"
"Perceived Type"="text"


[HKEY_CLASSES_ROOT\.html]
"Content Type"="text/html"
"Perceived Type"="text"

Спасибо за chm настройки, но проблема, как оказалось в итоге, была не в нём.
Автор: HeMet
Дата сообщения: 10.01.2013 20:21
Aleksandr N
А как указатели на память связаны с файлами на диске? В объектники, наверное, пишется смещение каких-то данных внутри файла, а не указатели.
Ну а вообще на ум приходит разве что вместо указателя использовать 32 разрядное целое и приводить его к указателю, когда надо. Но этот изврат полный, сопряженный с очевидными проблемами, потому как под x64 нету никаких «коротких указателей».
Поэтому, короткий ответ, наверное: никак, при условии сохранения в структуре указателя.
Собственно, в справке по Делфи тоже никаких намеков, что это возможно: http://docwiki.embarcadero.com/RADStudio/XE3/en/64-bit_Windows_Data_Types_Compared_to_32-bit_Windows_Data_Types
Автор: Aleksandr N
Дата сообщения: 10.01.2013 20:37
HeMet
В принципе с файлами на диске это не связано никак.
Ну чтобы совсем понять степень моего извращения нужно обратится к конкретной задаче. Возникла необходимость внести изменения в файл Vcl.Imaging.jpeg.pas. Проблема сразу возникла при определении размера заголовка картинки. Из-за того, что Pointer в 64-битах равен 8, то соответственно увеличивается размер записи под заголовок. Вот, по началу, и нужно привести этот заголовок в соответствие. Записи там приведены именно так.
Ну а так, новых мыслей не у кого не возникло?
Автор: Arioch1
Дата сообщения: 10.01.2013 20:49
а без перекомпиляции в памяти нельзя пропатчить нужную функцию ?
Автор: Aleksandr N
Дата сообщения: 10.01.2013 21:02
Arioch1
Считаю что нет, по крайней мере я не вижу способа. И честно говоря не люблю использовать модули без исходников.
Ещё раз уточню, проблема не в получении OBJ файлов под 64. Проблема именно на первом шаге, в размере заголовка. Считывается заголовок с неверным размером и, соответственно, код считает, что не верный заголовок картинки с номером ошибка №21.
Автор: HeMet
Дата сообщения: 10.01.2013 21:23
Aleksandr N
Т.е. у Вас есть файл Vcl.Imaging.jpeg.pas, в который вы хотите внести изменения, но не хотите менять сам файл, поэтому Вы хотите внести изменения в OBJ файл, полученный из него, а потом скормить этот файл компоновщику, который с ним соберет программу? Или я чего-то не понимаю?
Автор: Aleksandr N
Дата сообщения: 10.01.2013 21:34
HeMet
Не совсем так. Есть Vcl.Imaging.jpeg.pas, есть исходники JPEG на "С" из которых получены 64-битные OBJ файлы. Вносятся изменения в PAS файл и при перекомпиляции просто прилинковываются OBJ файлы.
Автор: Arioch1
Дата сообщения: 10.01.2013 21:46
Скорее он хочет перекомпилировать в 64-бита этот юнит. Правда не знаю, есть ли в составе Дельфи 64-битные OBJ-файлы.

Я бы скорее пробовал найти другой, независимый загурзчик jpeg-файлов. Graphics32, GraphicEx, Vampyre Imagine, ....

Добавлено:
А где именно изменения нужны, в C-файле или PAS-файле ?
Патчить чистую паскаль-функцию без внешних ссылок не очень сложно.
Автор: Aleksandr N
Дата сообщения: 10.01.2013 22:09
Arioch1

Цитата:
Скорее он хочет перекомпилировать в 64-бита этот юнит.

Именно так.

Цитата:
Правда не знаю, есть ли в составе Дельфи 64-битные OBJ-файлы

Нет, но я их получил из исходников библиотеки.

Цитата:
А где именно изменения нужны, в C-файле или PAS-файле ?

В PAS.

Цитата:
Патчить чистую паскаль-функцию без внешних ссылок не очень сложно.

Честно сказать что "БЕЗ", что "С" не представляю как...
Считаю что нуосто привести размер заголовка к нужному значению, но опять-же не понятно как.
Проблема начинается вот где:

procedure TJPEGImage.ReadStream(Size: Longint; Stream: TStream);
...
jpeg_CreateDecompress(cinfo, JPEG_LIB_VERSION, sizeof(cinfo));
...

Вот этот "sizeof(cinfo)" под 64-бита больше нужного, а структура "cinfo" жестко определена...
Автор: Arioch1
Дата сообщения: 10.01.2013 22:19
копируешь текст процедуры целиком в другой юнит.
Вносишь изменения.
Компилируешь, чтобы проверить что нет левых внешних ссылок.

http://qc.embarcadero.com/wc/qcmain.aspx?d=111277
в комментах показано как новая функция вставляется вместо старой.
единственное нужно будет в отладчике в CPU mode найти другой двоичный кусок для проверки, что все правильно, иначе после какого-нибудь апдейта функция может начать ломать RTL

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738

Предыдущая тема: [Delphi XE2] Размер PNG


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.