Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как из PB11 обновить unicode-поле? / 15 сообщений из 15, страница 1 из 1
16.06.2008, 21:58
    #35375662
ibog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
проблема:
для 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
17.06.2008, 09:20
    #35376043
как из PB11 обновить unicode-поле?
какая БД ?
...
Рейтинг: 0 / 0
17.06.2008, 09:29
    #35376056
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
А записать
update bg_if_defs Set name ="N'é²çèazert'" Where if_id =1284
религия не позволяет?
Или как правильно заметили, какая СУБД?
Проблема во включении апострофа, в некоторых случаях апостроф записывают как "~'"
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
17.06.2008, 11:25
    #35376398
ibog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
Бд - MsSql
драйвер -SNC SQL Native Client(OLE DB)
при чем тут религия?
NewText - это переменная
...
Рейтинг: 0 / 0
17.06.2008, 11:53
    #35376530
как из PB11 обновить unicode-поле?
точно не знаю, надо читать...

cудя по докам в инете, SNC умеет автоматически везде подставлять префикс N
но это если сервер с юникодом.
...
Рейтинг: 0 / 0
17.06.2008, 12:17
    #35376638
ibog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
не совсем понял , что значит "сервер с юникодом"?
у меня в использовании mssql2000&2005 ...
в свойствах DBParm не нашел явного указания на юникод.
да в общем-то все явные изменения юникод полей можно и динамический sql завернуть, но вот с DW то как?
читатет-то все поля в юникоде и в запросах и в DW замечательно :)
...
Рейтинг: 0 / 0
17.06.2008, 13:42
    #35377005
как из PB11 обновить unicode-поле?
я так понимаю сервер должен иметь юникодовскую кодировку по умолчанию.
для одбц это параметр 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
23.06.2008, 18:47
    #35389368
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
Коллеги, так может кто-нибудь чего-нибудь толкового сказать по этому вопросу?
из датавинды тоже ничего не сохраняется в юникодные поля (MSSQL)... все буквы с хвостиками преобразуются в английские :(
...
Рейтинг: 0 / 0
23.06.2008, 18:59
    #35389392
как из PB11 обновить unicode-поле?
я так думаю что этот топик ближе к форуму MSSQL.
они должны знать как избежать добавления приставки 'N' к каждой юникодовой строке.
с другими БД у билдера таких проблем нет.
--
ЗЫ: вы пробовали использовать источник данных ОДБЦ и установить указанный флаг в TRUE?
...
Рейтинг: 0 / 0
23.06.2008, 19:05
    #35389400
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
с новым годомя так думаю что этот топик ближе к форуму MSSQL.
они должны знать как избежать добавления приставки 'N' к каждой юникодовой строке.
с другими БД у билдера таких проблем нет.
--
ЗЫ: вы пробовали использовать источник данных ОДБЦ и установить указанный флаг в TRUE?
вообщето ОДБЦ совсем не собирались использовать.
да и PB11 приобретался только потому, что у него SNC SQL Native Client имеется, а тут такие грабли
...
Рейтинг: 0 / 0
23.06.2008, 19:10
    #35389406
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
с ODBC все работает, но эт пока не выход
...
Рейтинг: 0 / 0
23.06.2008, 19:33
    #35389429
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из PB11 обновить unicode-поле?
А если работать с ОДБЦ и смотреть через профайлер, чего там посылает датавинда при нажатии кнокпи Update, то профайлер показывает совсем не апдейт, а дерганье процедуры с параметром.
такой подход, я думаю, скажется на производительности, если вдруг придется из скрипта чего-нибудь апдейтить
...
Рейтинг: 0 / 0
24.06.2008, 09:52
    #35389954
как из PB11 обновить unicode-поле?
есть св-во и для OLEDB:
AutoTranslate Connection String Keyword

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

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


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