Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.03.2009, 13:22
|
|||
---|---|---|---|
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
Команда PowerBuilder-а <Имя DataWindow>.update генерирут команду UPDATE без префикса "N" перед значением стрингового поля типа NVARCHAR в операнде SET для SQL Server-а. Если во введенном пользователем для этого поля значениии есть определенные спецсимволы, то введенное значение после апдейтирования воспроизводится неправильно, смотрите ниже пример: BEGIN TRAN UPDATE A SET V1='ӘŎ'; COMMIT TRAN (1 row(s) affected) ------------------------------------- SELECT * FROM A V1 ---------- ??O (1 row(s) affected) --------------------------------------- BEGIN TRAN UPDATE A SET V1= N 'ӘŎ'; COMMIT TRAN (1 row(s) affected) -------------------------------------------- SELECT * FROM A V1 ---------- ӘŎ (1 row(s) affected) Вопрос : как решить вышеописанную проблемы при использовании PowerBuilder команды <Имя DataWindow>.update ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.03.2009, 17:15
|
|||
---|---|---|---|
|
|||
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
Я просю просченья, давненько не брал в руку шашку. Если правильно помню, есть такой эвент sqlpreview. Вот там надо Вам пымать параметр sqlsyntax, и в нем на это POLE, что должно быть Nvarchar, навесить convert(nvarchar(200),POLE). Нетривиально, но решаемо. Не судите строго, если что не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.03.2009, 17:28
|
|||
---|---|---|---|
|
|||
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
На всякий случай в,догонку, цитата из HELP Usage Some uses for the sqlsyntax argument are: · Changing the SQL to be executed (you can get the value of sqlsyntax, modify it, and call SetSQLPreview) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.03.2009, 18:53
|
|||
---|---|---|---|
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
KOLCHOZ_POSTEVENTЯ просю просченья, давненько не брал в руку шашку. Если правильно помню, есть такой эвент sqlpreview. Вот там надо Вам пымать параметр sqlsyntax, и в нем на это POLE, что должно быть Nvarchar, навесить convert(nvarchar(200),POLE). Нетривиально, но решаемо. Не судите строго, если что не так.Спасибо, это тоже буду пробовать. Но вот, что выяснилось в результате экспериментов: - если операнд DisableBind параметра DbParm транзакции неопределен, т.е. по умолчанию равен 0 (нулю), то команда <Имя DataWindow>.Update вносит любые спец-символы в поля типа NVARCHAR в SQL Server-е нормально, но зато тогда падает с ошибкой по синтаксису такой SELECT SELECT count('x') Into :i_count FROM Ltable L WHERE L.UNIT_ID = :i_uid AND L.NAME = :s_name AND L.CID <> :l_cid AND L.EID >= 0 AND NOT EXISTS ( SELECT 'X' FROM SLtable SL WHERE SL.ITEM_ID1 = :l_cid AND SL.TABLE_ID = 388 ) USING tr_id; хотя нормально выполняется такой SELECT SELECT count('x') Into :i_count FROM Ltable L WHERE L.UNIT_ID = :i_uid AND L.NAME = :s_name AND L.CID <> :l_cid AND L.EID >= 0 AND NOT EXISTS ( SELECT 'X' FROM SLtable SL WHERE SL.ITEM_ID1 = 0 // В этой строке отличие AND SL.TABLE_ID = 388 ) USING tr_id; - если же операнд DisableBind параметра DbParm транзакции определен равным 1 (единице), то тогда оба выиеуказанных SELECTа нормально работают, но зато команда <Имя DataWindow>.Update вносит любые спец-символы в поля типа NVARCHAR в SQL Server-е неправильно . Может быть у кого-нибудь есть какие-либо соображения по этому поводу ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.03.2009, 18:23
|
|||
---|---|---|---|
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
KOLCHOZ_POSTEVENTНа всякий случай в,догонку, цитата из HELP Usage Some uses for the sqlsyntax argument are: · Changing the SQL to be executed (you can get the value of sqlsyntax, modify it, and call SetSQLPreview)Мы проверили и пришли к выводу, что евент SetSQLPreview только показывает сгенерированную SQL-команду, но при выполнении команды <Имя DataWindow>.Update, показанная в евенте SetSQLPreview SQL-команда не используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.03.2009, 13:01
|
|||
---|---|---|---|
|
|||
Проблема команды <Имя DataWindow>.update стрингового поля типа NVARCHAR в SQL Server |
|||
#18+
Я опять-таки просю просченья, SetSQLPreview, всё-таки не евент, а функция для корректировки того SQLя, который DW пошлёт базе. То, что предстоит подправить ловится в евенте sqlpreview. А если SQL из скрипта не проходит, сделайте datawindow малюсенькое с нормальным SQLем. Но перед этим попробуйте tr_id.autocommit=true. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=15&mobile=1&tid=1336335]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 127ms |
0 / 0 |