powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятки в 1-м диалекте
11 сообщений из 11, страница 1 из 1
Непонятки в 1-м диалекте
    #39224194
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

БД в 3-м диалекте.

Создаем таблицы:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create table T1 (
    ID integer not null, 
    DELETED smallint );

create table T2 (
    ID integer not null, 
    T1_ID integer,
    DELETED smallint );



И выполняем запрос:
Код: plsql
1.
2.
3.
4.
select DELETED
  from T2
  join T1 on ( T1.ID = T2.T1_ID )
 where DELETED = 0



И получаем ошибку:
Код: powershell
1.
2.
3.
4.
5.
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Ambiguous field name between table T2 and table T1 .
DELETED.



Но если БД в 1-м диалекте, то никакой ошибки нет.
Экспериментальным путем выяснено, что неоднозначное поля берется из ближайшей таблицы
(в примере поле DELETED берется из таблицы T1).

Это так и должно быть?

С уважением, Polesov.
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovЭто так и должно быть?
Да. Первый диалект - исключительно для взадсовместимости и там много всякой фигни
игнорируется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224238
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

хватит уже на грабли наступать. deleted, насколько я помню, зарезервированное слово. См. релизноты или langref.

Выработайте уже у себя чутье к потенциально зарезервированным словам.
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224240
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПервый диалект - исключительно для взадсовместимостиТ.е. до появления 3-го диалекта ошибка Ambiguous field была невозможна?


kdv, замените DELETED на QWERTY и попробуйте в 1-м диалекте.
DELETED не является зарезервированным словом.
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224242
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

не совсем. DELETING ключевое, а начиная с 3.0 ещё и зарезервированное.
Хотя я бы тоже побоялся использовать DELETED
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224243
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovТ.е. до появления 3-го диалекта ошибка Ambiguous field была невозможна?
она была невозможна до появления Firebird 1.0. Но чтобы не сломать туеву хучу кривого старого кода (миграция с IB 4.x и 5.x), ругаться решили только в третьем диалекте.
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224244
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovТ.е. до появления 3-го диалекта ошибка Ambiguous field была невозможна?

До третьего диалекта результат таких запросов был случайной хренью. Что ты и наблюдаешь
сейчас в первом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224251
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисХотя я бы тоже побоялся использовать DELETEDДа я тоже побаивался...

Вопчем, особенности реализации
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224283
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ради интереса проверил в Yaffil
Код: powershell
1.
2.
3.
ISQL Version: WI-1.5.0.892 Yaffil SQL Server
Yaffil/x86/Windows NT (access method), version "NI-1.5.0.892 Yaffil SQL Server"
on disk structure version 10.0



И в 1 и в 3 диалекте ошибка одинакова:
Код: powershell
1.
2.
3.
4.
SQL warning code = 204
-Ambiguous field name between table T2 and table T1
-DELETED
-SQL warning code = 2080455076
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224779
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и Red Database

Код: powershell
1.
2.
3.
4.
5.
6.
ISQL Version: WI-V2.6.0.12321 Red Database 2.6
Server version:
Firebird/x86/Windows NT (access method), version "WI-V2.6.0.12321 Red Database 2.6"
Firebird/x86/Windows NT (remote server), version "WI-V2.6.0.12321 Red Database 2.6/XNet (IT-05)/P12"
Firebird/x86/Windows NT (remote interface), version "WI-V2.6.0.12321 Red Database 2.6/XNet (IT-05)/P12"
on disk structure version 11.4



И в 1 и в 3 диалектах:
Код: powershell
1.
2.
3.
SQL warning code = 204
-Ambiguous field name between table T2 and table T1
-DELETED
...
Рейтинг: 0 / 0
Непонятки в 1-м диалекте
    #39224979
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Polesov!
You wrote on 26 апреля 2016 г. 17:13:43:

Polesov> Ну, и Red Databaseв Oracle проверь

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятки в 1-м диалекте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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