
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.04.2008, 12:01
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
Имеется процедура, написанная и скомпилированная в Sybase Central. В ней создается временная таблица: Код: plaintext 1. ну и дальше по ходу в эту таблицу идут вставки/апдейты (строится отчет). Всё было нормально пока я не перекомпилил процедуру не централом а из Aqua Data Studio. В результате при ее выполнении прилетело совершенно неожиданное сообщение: автор >[Error] Script lines: 1-10 ------------------------- ASA Error -195: Column 'idclass' in table '#p' cannot be NULL Написал в лоб: Код: plaintext 1. После чего процедура заработала. Выходит - при компиляции процедуры из централа создаваемые в ней #-таблицы получают для своих полей атрибут NULL, а из Aqua Data Studio - NOT NULL. Но ведь компиляцией занимается сервер, а не клиентская тулза... это как это так может происходить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.04.2008, 00:35
|
|||
|---|---|---|---|
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
имхо, дело в set-ах, которые выставляет клиентский софт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.04.2008, 09:48
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
komradимхо, дело в set-ах, которые выставляет клиентский софт Я догадываюсь - но где ж этот сет который управляет правилами создания #-таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.04.2008, 15:51
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
set ansi null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.04.2008, 12:31
|
|||
|---|---|---|---|
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
Неа, для ASA это опция - ALLOW_NULLS_BY_DEFAULT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.04.2008, 14:57
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
morisНеа, для ASA это опция - ALLOW_NULLS_BY_DEFAULT О, уже свет забрезжил :) В случае с Aqua Data Studio, там работа идет через JDBC - куда и как это скормить? Очень хочется перейти с централа для ковыряния в процедурах на акву ибо у нее эргономика на порядок лучше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2008, 13:48
|
|||
|---|---|---|---|
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
Дело в том, что Aqua Data Studio коннектится к базе через jConnect. Рассмотрим, что происходит при установлении подключения. При любом способе коннекта к ASA вызывается так называемая LOGIN_PROCEDURE . По умолчанию в качестве LOGIN_PROCEDURE вызывается процедура sp_login_environment , которая определена в системе так: Код: plaintext 1. 2. 3. 4. 5. Имеющаяся в ее тексте проверка connection_property('CommProtocol')='TDS' для Aqua Data Studio (jConnect) срабатывает (а для подключения Central'ом через ODBC - нет), и в результате вызывается еще одна стандартная процедура sp_tsql_environment , которая устанавливает опции БД так, чтобы приблизить поведение ASA к ASE: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В частности, опция ALLOW_NULLS_BY_DEFAULT задает, что при отсутствии явной спецификации все столбцы создаются как not null (как в перманентных, так и во временных таблицах). Для решения вашей задачи и приведения настроек при запуске через ADS к обычным можно изменить LOGIN_PROCEDURE на свою собственную (которую можно оставить просто пустой): Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2008, 14:55
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
A.K. Для решения вашей задачи и приведения настроек при запуске через ADS к обычным можно изменить LOGIN_PROCEDURE на свою собственную (которую можно оставить просто пустой): Код: plaintext 1. это персистентно? то есть будучи однажны заменено, во всех дальнейших сессиях (и после перезапуска сервера) я буду уже иметь дело с подмененной логин-процедурой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2008, 17:14
|
|||
|---|---|---|---|
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
Да, перманентно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2008, 17:17
|
|||
|---|---|---|---|
|
|||
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
A.K.Да, перманентно. Большое спасибо. картина прояснилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2008, 17:49
|
|||
|---|---|---|---|
ASA9: Непонятное поведение NULL в #-таблицах |
|||
|
#18+
Vladimir KozlovБольшое спасибо. картина прояснилась. Я год назад точно таким же вопросом задавался, начав работать с Aqua'ой. Хотя в принципе в BOL все разъяснено - надо только найти, где :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=55&tablet=1&tid=2011614]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 451ms |

| 0 / 0 |
