powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как из PB11 обновить unicode-поле?
15 сообщений из 15, страница 1 из 1
как из PB11 обновить unicode-поле?
    #35375662
ibog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема:
для update поля nvarchar , use что-то типа:
update bg_if_defs Set name =N'é²çèazert' Where if_id =1284 ( это французские буквы :), для примера... )
но в PB команда
update bg_if_defs Set name =:NewText Where if_id =1284 где NewText - слово в unicode
приводит к фразе
update bg_if_defs Set name ='é²çèazert' Where if_id =1284 соответственно прописывается не в unicode, а в формате varchar :(
конечно, можно сделать что-то типа
NewText = "Update bg_if_defs Set name = N'"+NewText +"' Where if_id = 1284 "
Execute immediate :NewText;
и это работает,
но уж больно много менять тогда...
как указать PB, чтобы он сам понимал что меняется именно unicode поле?
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35376043
какая БД ?
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35376056
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А записать
update bg_if_defs Set name ="N'é²çèazert'" Where if_id =1284
религия не позволяет?
Или как правильно заметили, какая СУБД?
Проблема во включении апострофа, в некоторых случаях апостроф записывают как "~'"
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35376398
ibog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бд - MsSql
драйвер -SNC SQL Native Client(OLE DB)
при чем тут религия?
NewText - это переменная
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35376530
точно не знаю, надо читать...

cудя по докам в инете, SNC умеет автоматически везде подставлять префикс N
но это если сервер с юникодом.
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35376638
ibog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем понял , что значит "сервер с юникодом"?
у меня в использовании mssql2000&2005 ...
в свойствах DBParm не нашел явного указания на юникод.
да в общем-то все явные изменения юникод полей можно и динамический sql завернуть, но вот с DW то как?
читатет-то все поля в юникоде и в запросах и в DW замечательно :)
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35377005
я так понимаю сервер должен иметь юникодовскую кодировку по умолчанию.
для одбц это параметр autotranslate=yes/no

вот из хелпа по одбц драйверу к SQL Native Client

Perform translation for character data check box
When this check box is selected, the SQL Native Client ODBC driver converts ANSI strings sent between the client computer and SQL Server by using Unicode . The SQL Native Client ODBC driver sometimes converts between the SQL Server code page and Unicode on the client computer. This requires that the code page used by SQL Server be one of the code pages available on the client computer.

When this check box is cleared, no translation of extended characters in ANSI character strings is done when they are sent between the client application and the server. If the client computer is using an ANSI code page (ACP) different from the SQL Server code page, extended characters in ANSI character strings may be misinterpreted. If the client computer is using the same code page for its ACP that SQL Server is using, the extended characters are interpreted correctly.
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389368
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, так может кто-нибудь чего-нибудь толкового сказать по этому вопросу?
из датавинды тоже ничего не сохраняется в юникодные поля (MSSQL)... все буквы с хвостиками преобразуются в английские :(
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389392
я так думаю что этот топик ближе к форуму MSSQL.
они должны знать как избежать добавления приставки 'N' к каждой юникодовой строке.
с другими БД у билдера таких проблем нет.
--
ЗЫ: вы пробовали использовать источник данных ОДБЦ и установить указанный флаг в TRUE?
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389400
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с новым годомя так думаю что этот топик ближе к форуму MSSQL.
они должны знать как избежать добавления приставки 'N' к каждой юникодовой строке.
с другими БД у билдера таких проблем нет.
--
ЗЫ: вы пробовали использовать источник данных ОДБЦ и установить указанный флаг в TRUE?
вообщето ОДБЦ совсем не собирались использовать.
да и PB11 приобретался только потому, что у него SNC SQL Native Client имеется, а тут такие грабли
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389406
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с ODBC все работает, но эт пока не выход
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389429
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если работать с ОДБЦ и смотреть через профайлер, чего там посылает датавинда при нажатии кнокпи Update, то профайлер показывает совсем не апдейт, а дерганье процедуры с параметром.
такой подход, я думаю, скажется на производительности, если вдруг придется из скрипта чего-нибудь апдейтить
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389954
есть св-во и для OLEDB:
AutoTranslate Connection String Keyword

VanoRА если работать с ОДБЦ и смотреть через профайлер, чего там посылает датавинда при нажатии кнокпи Update, то профайлер показывает совсем не апдейт, а дерганье процедуры с параметром.
и в датавинде не прописано апдейтить через процедуру?
.. что за имя процедуры?
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35389993
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с новым годоми в датавинде не прописано апдейтить через процедуру?
.. что за имя процедуры?
Скорее всего что-нибудь типа sp_executesql
...
Рейтинг: 0 / 0
как из PB11 обновить unicode-поле?
    #35391997
ibog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема решается, если в строку парам добавить :
SQLCA.DBParm = “DisableBind=0”

ответ получен от support@sybase и проверен :)
работает.
напоминаю речь идет именно о SNC SQL Native Client
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как из PB11 обновить unicode-поле?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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