powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хотелка
19 сообщений из 44, страница 2 из 2
Хотелка
    #38664841
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо ты не понял.
kdvNickDee,

на диаграммах (типа дизайнера БД или QueryBuilder) инструмент может не выводить двойные кавычки. Это облегчит визуальное восприятие. С остальным - несколько сложнее.
Какие двойные кавычки? Ты видишь кавычки в приведённом мной SQL?
Я не хочу кавычек нигде. Но я хочу в дизайнере видеть не uppercase-нутые имена. Зачем они там такие? Так повелось? :)
kdvПредлагаемая в трекере фича imho абсурдна в том смысле, что редко какой инструмент будет ею пользоваться, а значит, ее важность ниже плинтуса.
Воспользуются кто нужно. IBExpert бы давно воспользовался, если бы можно было.
Дайте возможность.
kdvНапример, как мы будем видеть в таком инструменте "Id" и Id ? "Id" всегда будет везде закавычиваться?
При генерации SQL всё будет как сейчас, за исключением того, что идентификаторы без кавычек будут писаться в нормальном регистре.
Код: sql
1.
create table T (Id integer, "Id" integer)

Сейчас будет сгенерирован такой select:
Код: sql
1.
select ID, "Id" from T

Я хочу вот такой:
Код: sql
1.
select Id, "Id" from T

Т.е. хочу сохранить оригинальный регистр незакавыченых имён.
kdvА если я создаю таблицы в lowercase, тогда оно мне будет все в lowercase выводить?В зависимости от галки "Приводить имена к верхнему регистру" :)
kdvТогда, чтобы было "Красиво", надо еще и этому инструменту уметь редактировать имена таких столбцов, и еще и давать возможность это делать в SQL.
Инструменту это зачем? А в SQL уже есть ALTER. Правда его нет для таблиц, доменов и прочих объектов.
kdvКороче, очередное "изобретение" NickDee :-)Интересная у тебя проекция в мой адрес:)kdvЯ бы скорее предложил uppercase объектов не делать при сохранении метаданных, а делать только при их чтении и "обработке" (типа prepare).
Так поломаются много существующих программ.
kdvНу и чтобы alter column alter name при равенстве (по uppercase) from и to просто заменял название поля (без последствий и зависимостей).
Это да, но менять не название поля в RDB$FIELD_NAME, а менять его написание в RDB$SRC_FIELD_NAME.
kdvp.s. вот уже давно IBExpert типа "швейцарский нож", и все чего-то не хватает (кому-то). Ну не будет в нем моделера как ER/Studio и др. Дизайнер там "наколенный". Да, полезен, но до определенного предела.Намекаешь что уже нужна IDE с более высоким уровнем полезности чем имеет IBExpert? :)
...
Рейтинг: 0 / 0
Хотелка
    #38664843
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЭто автоматически станет невозможным, AFAIU.
может в моей логике дыра...

create table Test.
Записываем в имя таблицы Test
Далее, когда идет
select * from test
делаем upper для имени в select, и upper имени в rdb$relations. Совпадает? Замечательно.

Теперь с двойными кавычками. По идее, они нужны чтобы втыкать в имена объектов дополнительные и национальные символы.
Потому что иначе от меня ускользает смысл наличия в БД двух Test и tEst одновременно.
Так вот, если мы пишем
create table "tEst"
мы получаем это имя в rdb$relations, но дальше ничего не меняется. Потому что это имя будет равно и test, и tEst, Test, и т.д.
А если имя сложное, начинается с цифр, содержит дефисы и прочее, то без двойных кавычек это выдаст или ошибку или "объект не найден". А в двойных кавычках будет ок. Но с регистром букв тоже будет все равно, т.е. "Test" = "tEst".

Однако, тут вроде получается проблема совместимости с предыдущими БД. Явно надо было Борланду в ИБ 6 сделать 3 диалект в этом плане сразу по человечески, а не "аки Оракл" (или "аки C++").
Или какой-нибудь переключатель тогда воткнуть.

p.s. насколько я понял, в обычном режиме у MS SQL именно так: регистр сохраняется, но есть регистро-нечувствительность
http://msdn.microsoft.com/en-us/library/aa290089(v=vs.71).aspx
...
Рейтинг: 0 / 0
Хотелка
    #38664844
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee> Я хочу вот такой:
NickDee> select Id, "Id" from T

Тебе же русским языком говорят, что так нельзя.
И никакой RDB$SRC_FIELD_NAME тут не поможет.

> Интересная у тебя проекция в мой адрес:)kdv

И не только у него. И тебе давно это говорили.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хотелка
    #38664845
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeНо я хочу в дизайнере видеть не uppercase-нутые имена. Зачем они там такие? Так повелось? :)
если убрать твои нагромождения в виде системных таблиц, то ты хочешь чтобы "было как в MS SQL", потому что сейчас "сделано как в Oracle".

NickDeeИнтересная у тебя проекция в мой адрес:)
возможно искаженная, но вроде бы ты регулярно слегка абсурдные идеи закидываешь.

NickDeeТак поломаются много существующих программ.
и где они поломаются? Разве что на отличии "Test" от "tesT". Покажите мне, кто так одновременно идентификаторы называет (кроме С++).
...
Рейтинг: 0 / 0
Хотелка
    #38664846
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeНамекаешь что уже нужна IDE с более высоким уровнем полезности чем имеет IBExpert? :)
я намекаю что при моем решении ты в любой IDE будешь иметь плюсы с ВотТакимиИменами, автоматически, и без "двойных кавычек".
...
Рейтинг: 0 / 0
Хотелка
    #38664847
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvNickDee,

короче, я за CORE-1645 .CORE-1645so queries
select * from MyTABLE;
select * from MYTABLE;
select * from MyTAble;
must result SQL ERROR: ambigious object name 'MyTABLE'/'MYTABLE'/'MyTAble'Это же огромное количество программ поломается сразу.
И что-то я не пойму какая задача при этом решится.
...
Рейтинг: 0 / 0
Хотелка
    #38664848
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> может в моей логике дыра...

Не в логике, а в том, что не учитываешь все случаи.
Во-первых, "делать upper" и всё остальное не нужно,
достаточно делать CI-сравнение (почти как сейчас),
по крайней мере для незакавыченных столбцов.
Во-вторых, повторюсь, все кавычки "сломаются" и
"tA" станет равным tA. Хотя может и можно как-то
обложить это кучей IF-ов (не уверен), но это будет
типичная "рыбу заворачивали", что обычно никому
не нравится, включая птицеводов и ДЕ в частности,
а во-вторых, чудится мне, что обратная совместимость
будет сломана нахрен как минимум на протяжении
нескольких релизов.

> Теперь с двойными кавычками

Я не совсем понимаю, что такое "двойные кавычки".
Это как есть сейчас но при предлагаемых изменениях
или что? Нафиг они нужны вообще, если все доп.
символы, кириллицу, японицу и арабику можно и
сейчас повтыкать, в т.ч. одновременно ?

P.S. Смотреть надо, ИМХО, не на MSSQL и Oracle
(там тоже от не-латиницы в именах объектов не в
восторге, я тебя уверяю), а на стандарт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хотелка
    #38664849
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЭто же огромное количество программ поломается сразу.
ты не все прочитал (и меня не прочитал). там у автора целая статья с размышлениями "на заданную тему". И я не со всеми вариантами согласен.
...
Рейтинг: 0 / 0
Хотелка
    #38664850
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> вроде бы ты регулярно слегка абсурдные идеи закидываешь.

Это ещё мягко сказано.

> Покажите мне, кто так одновременно идентификаторы называет (кроме С++).

Проблема не в том, кто так называет, а в том, для
чего в действительности нужен сабж (на практике).
Хочешь писать маленькими/большими - пиши,
хоть в венгерской нотации пиши. Закавычь всё -
и радуйся маленьким буквам. Муха, слон, палец.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хотелка
    #38664851
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВо-первых, "делать upper" и всё остальное не нужно, достаточно делать CI-сравнение (почти как сейчас),
как угодно, главное - результат.

Гаджимурадов РустамВо-вторых, повторюсь, все кавычки "сломаются" и "tA" станет равным tA.
я это понимаю, и я только ЗА это. Возможно, потому, что я полагал (еще при выходе ИБ 6) что двойные кавычки нужны для имен типа "с пробелами", "1 с цифрами", "keyword", и "на русском языке". То есть с теми символами, которые парсер без кавычек переварить не в состоянии.

Гаджимурадов Рустамобратная совместимость будет сломана нахрен как минимум на протяжении нескольких релизов.
да, печаль, но сломаны будут только те базы, где есть "Та" и "тА" одновременно. В остальных случаях все будет работать.

Гаджимурадов РустамСмотреть надо ... на стандарт.
что-то у меня в пол-второго ночи с гуглением плохо. Но думаю, что NickDee с этой фичой (в его варианте) обломится.
...
Рейтинг: 0 / 0
Хотелка
    #38664854
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvcreate table Test.
Записываем в имя таблицы Test
Далее, когда идет
select * from test
делаем upper для имени в select, и upper имени в rdb$relations. Совпадает? Замечательно.

Теперь с двойными кавычками. По идее, они нужны чтобы втыкать в имена объектов дополнительные и национальные символы.

Т.е. TEST = Test = "TeST"?
Хорошая мысль :)
...
Рейтинг: 0 / 0
Хотелка
    #38664859
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeХорошая мысль :)
так и я об чем - пишем в том регистре, в котором принимаем. Но проблема (нынешняя) в том, что запрос
create table test1 (id int, "Id" int)
работает без ошибок. Т.е. сейчас сервер отличает ID и "Id" только по разнице в регистре. И если сделать, как я предлагаю, это поломает базы с вот такой вот ахинеей, т.е. там, где есть одинаковые имена объектов, но в разном регистре.
...
Рейтинг: 0 / 0
Хотелка
    #38665316
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Они не поломаются, они не сресторятся на FB3 до тех пор, пока в базе не будет устранена несуразность с именами полей.
...
Рейтинг: 0 / 0
Хотелка
    #38667207
Я не понимаю проблемы.

"select Id from MyTable" можно писать и сейчас.
"FieldByName('Id').AsInteger" прекрасно читает поле "ID" этого запроса.

При этом пользователю даже вредно показывать имена полей. Ему надо показывать что-то понятное кухарке типа: "А вот тут Вы видете что сказал Ваш Босс по этой проблеме" и никак не абракадабру из пары десятков символов, пусть в разном регистре.
...
Рейтинг: 0 / 0
Хотелка
    #38667232
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон КарасёвЯ не понимаю проблемы.
учиться надо. Вкратце:
1. create table MyTable превращается в MYTABLE. А NickDee хочет, чтобы регистр букв объектов сохранялся.
2. create table mytable(id int, "Id" int) не вызывает ошибки. В результате в системных таблицах получается два разных столбца - ID и Id. Но к Id можно обращаться только в двойных кавычках.
...
Рейтинг: 0 / 0
Хотелка
    #38667335
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeСейчас имена объектов бд хранятся в системных таблицах в uppercase.
Например после
Код: sql
1.
create table ProcessedDocuments (Id int, CustomerId int, ProcessDate date)


в системных таблицах получаем все имена в uppercase.
Хочется возможность извлечь из системных таблиц имена в том case, в котором они были созданы.
Это нужно для того, чтобы например в средствах разработки (в том же самом IBExpert) можно было использовать нормально-читаемые идентификаторы (в скриптах, в подсказках (по ctrl-space) и пр).
Предлагаю добавить новое поле в системные таблицы. Имхо будет удобно.
Сейчас конечно можно обрамлять имена объектов в кавычки при создании, но тогда приходится эти кавычки писать во всех sql, что излишне.

1. Вам влом писать кавычки.

2. Считаете, что разработчикам не влом перетрясти ОДС.

3. Не знаете о существовании оператора comment on.
...
Рейтинг: 0 / 0
Хотелка
    #38667614
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон Карасёв> Я не понимаю проблемы.

Потому что думаешь с т.з. клиента. А он думает с т.з. схемы БД и её отображения (на экран).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хотелка
    #38688052
Вот что значит проектировать базу данных без схемы.

По нормальному сначала схема в спец. софте а уже потом база.
Все красиво, разноцветно, с комментариями.
...
Рейтинг: 0 / 0
Хотелка
    #38688062
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Антон Карасёв!
You wrote on 4 июля 2014 г. 15:15:32:

Антон Карасёв> По нормальному сначала схема в спец. софте а уже потом база.
> Все красиво, разноцветно, с комментариями.
особенно если это курсовая работа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хотелка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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