|
|
|
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. Но ведь компиляцией занимается сервер, а не клиентская тулза... это как это так может происходить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2008, 12:01 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
имхо, дело в set-ах, которые выставляет клиентский софт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 00:35 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
komradимхо, дело в set-ах, которые выставляет клиентский софт Я догадываюсь - но где ж этот сет который управляет правилами создания #-таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 09:48 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
set ansi null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 15:51 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
Неа, для ASA это опция - ALLOW_NULLS_BY_DEFAULT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 12:31 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
morisНеа, для ASA это опция - ALLOW_NULLS_BY_DEFAULT О, уже свет забрезжил :) В случае с Aqua Data Studio, там работа идет через JDBC - куда и как это скормить? Очень хочется перейти с централа для ковыряния в процедурах на акву ибо у нее эргономика на порядок лучше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 14:57 |
|
||
|
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2008, 13:48 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
A.K. Для решения вашей задачи и приведения настроек при запуске через ADS к обычным можно изменить LOGIN_PROCEDURE на свою собственную (которую можно оставить просто пустой): Код: plaintext 1. это персистентно? то есть будучи однажны заменено, во всех дальнейших сессиях (и после перезапуска сервера) я буду уже иметь дело с подмененной логин-процедурой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2008, 14:55 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
Да, перманентно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2008, 17:14 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
A.K.Да, перманентно. Большое спасибо. картина прояснилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2008, 17:17 |
|
||
|
ASA9: Непонятное поведение NULL в #-таблицах
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovБольшое спасибо. картина прояснилась. Я год назад точно таким же вопросом задавался, начав работать с Aqua'ой. Хотя в принципе в BOL все разъяснено - надо только найти, где :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2008, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35253143&tid=2011614]: |
0ms |
get settings: |
10ms |
get forum list: |
24ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 507ms |

| 0 / 0 |
