powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как писать widestring в firebird в D5?
25 сообщений из 66, страница 2 из 3
как писать widestring в firebird в D5?
    #38845641
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvминимально оно стоит $569, это если обновиться до Delphi XE7 Prof

Легальная Delphi 5 1999 года розлива? Бывает и такое конечно: у крупных контор, которые решили легализоваться. Какая-то, например, складская учётка на А... коробочная например. Но в настолько крупных проектах, мне кажетсЯ, вопросом закупки озаботятся более опытные лица.

Кроме того, к вышеозвученной сумме надо бы ещё добавить цену апгрейда с "пятёрки" до XE2, по крайней мере судя по
kdvDelphi XE7 Professional Upgrade from XE2-XE6 ESD (без Mobile Add-On Pack) 30200 руб

В общем, если легально топикстартера апгрейдить - то на CodeTyphon. А если нелегально, то сам найдёт
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38845948
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи освоил нововведения всей линейки версий от D6 до ХЕ7.
нафига эти нововведения все осваивать? Он про IBX пишет. С IBX и штатными контролами код приложения будет один в один, что на D5, что на XE7.

AriochЛегальная Delphi 5 1999 года розлива?
где логика? Если у него Д5 нелегальная, то к чему тут тогда разглагольствования о стоимости, хоть Д5, хоть ХЕ7? :-)
кстати, Д5 Энтерпрайз вполне много народу покупало. И до сих пор сидят на ней именно те, кто покупал.

Ariochк вышеозвученной сумме надо бы ещё добавить цену апгрейда с "пятёрки" до XE2, по крайней мере судя по
Выкинь эту мысль из головы, она неправильная.

- XE2 - минимальная версия, с которой доступен апгрейд. С 1 января 2015 это будет XE3.
- делать апгрейд до ХЕ2 невозможно, потому что "см. выше" - минимальная версия для апгрейда - ХЕ2
- до 31 декабря 2014 года была пару месяцев "амнистия" для апгрейда С ЛЮБОЙ предыдущей версии.
- в здравом уме делать апгрейд на ХЕ3-XE6 невозможно. Потому что апгрейд на ХЕ7 стоит столько же. Еще и дает возможность получить все предыдущие пропущенные версии.

не надо усложнять, все намного проще. Апгрейд с Д5 до ХЕ7 Проф до 31 декабря был $569, как я уже привел. Никаких "промежуточных" ходов для апгрейда нет и не было (и не будет).
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846099
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert Для utf8 не нужны переменные особых типов, utf8 прекрасно живет в ansistring. Посему AsString для работы с ней вполне достаточно.

ок. сегодня - завтра проверю. BOM нужен?

IBExpert Для конвертации UTF8 в widestring нужны соответствующие функции. Их есть, например, здесь:

спасибо. :) такие простые вещи пишутся минут за 10.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846152
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Млин, не верю своим глазам. неужели ищет и находит?!!..... ух, IBExpert , тебе, дорогой, особых пожеланий в новом году! :)

D5 рулит! я в этом не сомневался.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846968
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не все так гладко.

пишу в базу 3 буквы в utf8: 230,152,142, 227,129,139, 227,130,138

получаю обратно: 230,0,142, 227,129,139, 227,130,138

что это за магический символ 152? :)

видимо, ftString, все же, не подходит.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846972
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если все то же самое, и теми же средствами писать в blob, то все нормально обратно возвращается. что такое 152?
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846973
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratino> что такое 152?
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1134380&msg=17052595

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846981
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем ясна эта таблица.

я записываю 1 символ 明, закодированный utf8: $e6, $98, $8e. обратно он прочитывается как $e6, 0, $8e.

И это точно до всяких конверторов. Записываю через TIBQuery с параметром, заполненным loadfromstream, вижу $98. Читаю TField.GetData - уже 0. Т.е. либо при записи $98 становится нулем, либо при чтении. А так, вообще, кучу текста туда заливаю - нормально. Что это может быть?
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846982
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratino> я записываю 1 символ, закодированный utf8: $e6, $98, $8e. обратно он прочитывается как $e6, 0, $8e.
> И это точно до всяких конверторов. Записываю через TIBQuery с параметром, заполненным loadfromstream, вижу $98. Читаю TField.GetData - уже 0. Т.е. либо при записи $98 становится нулем, либо при
> чтении. А так, вообще, кучу текста туда заливаю - нормально. Что это может быть?
Ну так посмотри в IBExpert'е чтоль, что туда записывается для начала, потом и дальше думать будешь...

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38846986
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratinoЗаписываю через TIBQuery с параметром, заполненным loadfromstream, вижу $98. Читаю TField.GetData - уже 0.

Ты извращенец что-ли? Для дельфи и TIBQuery строка utf8 ничем абсолютно не отличается от строки win1251, например.
Читай и пиши строковые поля через AsString.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847072
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

у нас в legacy-коде были записи срок через stirngstream, правда это относилось к параметрам в запросах и спросить уже не у кого почему.

в XE2 - и после установки типов TParam в фиксированное значение руками - это стало ненужно. Но раньбше почему-то использовалось. Хотя "на бумаге" и не должно бы быть разницы
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847073
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratino,

у тебя connection в какой кодировке делается?
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847077
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
           Q.ParamByName('ID').AsInteger := id;
//         Q.ParamByName('NOTES').AsString := Notes.NewValue;  //-- BLOB Param As_XXXX_String fails with Firebird 2.1 and db-express v.4
//         Q.ParamByName('NOTES').AsBlob := TEncoding.Ansi.GetBytes( Notes.NewValue );
           Q.ParamByName('NOTES').AsMemo := Notes.NewValue;  //-- BLOB Param As_XXXX_String fails with Firebird 2.1 and db-express v.4



Вот, кстати. реальный кусок, правда на dbExpress и "юникодной" дельфе (т.е. .SetAsString выставляет параметру тип ftWideString, а не ftString).
Причём на FB 2.5.2 работало без выкрутасов, а вот в 2.1.x отказалось.
Правда при ВЫПОЛНЕНИИ запроса, когда DBX не мог найти правильный тип для параметра.

На мой взгляд, если глюк воспроихводится так легко, как запись и чтение параметра без обращения к реальному серверу (без prepare запроса например), то надо в лоб ставить Use Debug DCU и трассироваь внутренности IBX и VCL
А перед этим проверить что поставленны все официальные обновления на IBX и VCL. И возможно ещё и какие-нибудь старые VCLfixPack поискать

Либо же все же рискнуть UIB'ом
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847198
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zirraНу так посмотри в IBExpert'е чтоль, что туда записывается для начала, потом и дальше думать будешь...
да, похоже, что при записи. IBExpert показывает 1 байт в этом поле.

IBExpertТы извращенец что-ли?
со стажем! ладно, сделал запись просто через string, результат тот же: 230,152,142 записывается как 230,0,142.

Ariochу тебя connection в какой кодировке делается?
- firebird 2.1.
- база создана в WIN1251.
- потом добавлено 1 поле: alter table zzz add aaa varchar(250) CHARACTER SET UTF8
- подключаюсь в базе lc_ctype=WIN1251
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847200
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratino- подключаюсь в базе lc_ctype=WIN1251И что ж вы после этого хотите?
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847228
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratino- подключаюсь в базе lc_ctype=WIN1251
То есть ты серверу говоришь "щаз я тебе буду пихать данные в кодировке WIN1251", а сам
пихаешь ему UTF-8. Врать нехорошо и чревато боком. Что ты и поимел.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847278
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovТо есть ты серверу говоришь "щаз я тебе буду пихать данные в кодировке WIN1251", а сам
пихаешь ему UTF-8. Врать нехорошо и чревато боком. Что ты и поимел.


а наоборот врать можно? подключиться, типа, utf8, а пихать WIN1251? у меня, ведь, все остальное в WIN1251....
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847294
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratinoа наоборот врать можно? подключиться, типа, utf8, а пихать WIN1251?

На таком вранье сервер тебя подловит быстрее и сразу даст по соплям. Он жосткий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847344
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovНа таком вранье сервер тебя подловит быстрее и сразу даст по соплям. Он жосткий.


хорошо... а как же тогда народ делает? вот таблица, все поля 1251, одно поле utf8. как с такими данными работать одновременно?




Всех с Новым годом!
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847349
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так никто в своём уме не делает. Есть чарсет коннекта, и данные на сервер надо передавать именно в этом чарсете.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847368
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Грустно. А зачем тогда разработчик субд предусмотрел возможность заведения в одной таблице полей с разными чарсетами?
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847372
booratino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не, засада в чем-то другом. поставил firebird 2.5,
пересоздал базу в utf8, конекчусь к ней в utf8.
все равно 明かり превращается в 怎かり
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847389
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratinoхорошо... а как же тогда народ делает? вот таблица, все поля 1251, одно поле utf8. как с такими данными работать одновременно?


Если работаешь с utf8, зачем нужны поля в 1251??
Можно понять необходимость иметь поля в разных кодировках в доюникодные времена, а сейчас зачем?

booratinoпересоздал базу в utf8, конекчусь к ней в utf8.
все равно 明かり превращается в 怎かり


Экспертом эта строка без мутаций вставляется? Я у себя проверил - без проблем.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847392
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booratinoхорошо... а как же тогда народ делает? вот таблица, все поля 1251, одно поле utf8. как с такими данными работать одновременно?


Кстати, с этим не должно быть никаких проблем, если коннектиться с чарсетом utf8. Можно хоть одновременно работать, хоть по очереди.
...
Рейтинг: 0 / 0
как писать widestring в firebird в D5?
    #38847427
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertbooratinoхорошо... а как же тогда народ делает? вот таблица, все поля 1251, одно поле utf8. как с такими данными работать одновременно?


Кстати, с этим не должно быть никаких проблем, если коннектиться с чарсетом utf8. Можно хоть одновременно работать, хоть по очереди.
А если ещё есть поле с чарсетом octets?
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как писать widestring в firebird в D5?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]