Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 14 15 16 17 18 19 20 21 [22] 23   вперед  Ctrl
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Идущий лесом
Guest
Для локальных переменных, поведение отличается.
-- запятая тут явно лишняя
22 июн 17, 10:09    [20582599]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Идущий лесом
Guest
Довольно часто присутствует ошибка в пунктуации при использовании вводного слова "например".
Проверял только по руководству для 2.5

Общее правило:
вводные слова отделяются запятыми или другими знаками пунктуации -
круглыми скобками для вложенных предложений либо двоеточием после вводного слова.

------------------------------------

стр.29

диапазон, например
BETWEEN.

диапазон, например,
BETWEEN.

стр.30

форма декларации, например
NUMERIC(p, s).

форма декларации, например,
NUMERIC(p, s).


стр.37

зависит от набора символов, так
например, для набора символов

зависит от набора символов, так,
например, для набора символов


стр.53

например DATE '25.12.2016'

например, DATE '25.12.2016'

стр.55

другие правила конвертирования, например отображать пробелы

другие правила конвертирования, например, отображать пробелы


Экспоненциальная запись, например число

Экспоненциальная запись, например, число

стр.105

ограничения столбца, например NOT NULL

ограничения столбца, например, NOT NULL


стр.107

и заключается в круглые скобки, например
и заключается в круглые скобки, например:


-- а тут сложноподчиненные предложения, поэтому нужны запятые:

и имён столбцов для которых оно применяется:
и имён столбцов, для которых оно применяется:

может ссылаться на столбец или столбцы входящие в уникальный ключ.
может ссылаться на столбец или столбцы, входящие в уникальный ключ.

стр.172

(например «е» и «ё»).
(например, «е» и «ё»).


стр.181

совместно, например FIRST m SKIP n,
совместно, например, FIRST m SKIP n,

Любой аргумент FIRST или SKIP, который не является целым числом или параметром
SQL должен был заключён в круглые скобки.

Любой аргумент FIRST или SKIP, который не является целым числом или параметром
SQL, должен был заключён в круглые скобки.


стр.208

из списка выбора, например "class"
из списка выбора, например, "class"


стр.237

Например запрос
Например, запрос


стр.241

Например
запрос

Например,
запрос


стр.264

множеством событий, например BEFORE
множеством событий, например, BEFORE

стр.304

другие переменные, например 'NOW'
другие переменные, например, 'NOW'

стр.305

переменные, например 'NOW'
переменные, например, 'NOW'


стр.309

-- возвратит, например
-- возвратит, например,
либо
-- возвратит, например:

(исправить 3 раза и далее аналогично по тексту на следующих страницах)


стр.351

дата/время, например
SECOND

дата/время, например,
SECOND

стр.368

источник данных, например с помощью производной таблицы
источник данных, например, с помощью производной таблицы
22 июн 17, 11:06    [20582810]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
Идущий лесом,

спасибо, поправлю
22 июн 17, 11:42    [20582964]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2292
Не надо всегда лепить запятые после "например".
http://russkiiyazyk.ru/punktuatsiya/stavyatsya-zapyatyie-so-slovom-naprimer.html
24 июн 17, 08:06    [20587769]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
doos
Member

Откуда: Ленинградская обл.
Сообщений: 141
Симонов Денис,

Мой пост учел?
24 июн 17, 18:50    [20588170]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
doos,

я пока ничего не правил
24 июн 17, 18:51    [20588175]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
doos
Member

Откуда: Ленинградская обл.
Сообщений: 141
Симонов Денис,

Мое сообщение немного раньше было, думал, может пропустил...
24 июн 17, 18:52    [20588176]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
doos,

нет. Просто из-за одной запятой или неправильного слова не вижу смысла править, жду когда поднакопиться. Сейчас займусь, тут с запятыми много накидали.
24 июн 17, 18:55    [20588178]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Gallemar
Member

Откуда: г.Иркутск
Сообщений: 4731
стр. 238
то все поля в возвращаемой строке будут меть значения NULL
14 июл 17, 09:47    [20643182]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
Симонов Денис
я пока ничего не правил


Может тогда как-то помечать/отписывать, типа обработаны сообщения с 1234 по 4321

ну типа явный коммит делать
18 июл 17, 10:57    [20652861]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
Arioch,

коммиты здесь смотри
18 июл 17, 11:33    [20653073]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
Симонов Денис,

там не привязано к сообщениям здесь, и поэтому на вопросы типа
doos
Мое сообщение немного раньше было, думал, может пропустил...
не отвечает
18 июл 17, 14:36    [20654213]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
FB_2.5_docs
Functions for Working with Context Variables

Table of Contents
RDB$GET_CONTEXT()RDB$SET_CONTEXT()


Мне кажется странным, что эти функциии отсутствуют в разделе "Context variables"

https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-functions-contextvars.html


...а вместо того помещены в раздел "Scalar Functions"

https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-functions-scalarfuncs.html

Мне кажется, немножко промахнулись
13 ноя 17, 14:10    [20949475]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-dml-update.html#fblangref25-dml-update-orderbyclause

UPDATE stmt
The ORDER BY and ROWS clauses make sense only when used together. However, they can be used separately.


Это не так. Только что нашёлся, судя по всему, use-case для UPDATE ... ORDER BY без ROWS: изменение номеров в столбце с UNIQUE CONSTRAINT.

1-2-3-4-5 -> нужно вставить новую запись №3 -> нужно "раздвинуть" таблицу 1-2-4-5-6

Вот в процессе сдвига записей 3-4-5 если порядок не будет жестко задан как descending - словим contraint violation.
16 ноя 17, 11:57    [20959338]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
Arioch,

Вообще-то ROWS не имеет смысла без ORDER BY, а ORDER BY без ROWS имеет.
16 ноя 17, 12:50    [20959619]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
ну да, вероятно

хотя я не знаю implementation details и даёт ли движок гарантию перебора записей в нужном порядке без rows. Я надеюсь, что даёт, но не знаю.

однако в справке на текущий момент записано что ни одно само по себе не имеет, и я эту багу в доке зарепортил
16 ноя 17, 15:07    [20960325]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
Arioch
даёт ли движок гарантию перебора записей в нужном порядке без rows


даже и не так, вообще не задокументировано, даётся ли такая гарантия в любом случае

потому что можно прочитать и так, что при использовании обоих кляуз и ORDER и ROWS будет просто выполнен отбор первых N строк и гарантируется только отсутствие обработки других строк, но не относительный порядок внутри подмножества

Т.е. на будущее, для отличения ситуации "это бага и регрессия" от "а такого никто и не обещал, просто раньше так было реализовано, а теперь по другому" хотелось бы детально прописать, тем более, что и use case я вам подогнал, которого в доке не было
16 ноя 17, 15:11    [20960341]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 58652
Arioch> даёт ли движок гарантию перебора записей в нужном порядке без rows

<рукалицо>

Arioch> даже и не так, вообще не задокументировано, даётся ли такая гарантия в любом случае

<рукалицо> 2 раза

Arioch> при использовании обоих кляуз и ORDER и ROWS будет ,
Arioch> но не относительный порядок внутри подмножества

<рукалицо> 4 раза как на Диминой гифке.
Это просто жесть какая-то...

P.S. Что там в самом сабже на этот счет написано -
не читал, допускаю, что тоже жесть.

Posted via ActualForum NNTP Server 1.5

16 ноя 17, 16:58    [20960850]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
https://github.com/sim1984/langref25/releases/tag/langref25

в PDF исправлено
1 фев 18, 11:58    [21157096]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
UDFы и NULL в параметрах

https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-ddl-extfunc.html

By default, input parameters are passed by reference. The BY DESCRIPTOR clause may be specified instead, if the input parameter is passed by descriptor. Passing a parameter by descriptor makes it possible to process NULLs.


1) про ключевое слово NULL не сказано вообще ничего
2) утверждается, что NULL можно передать только "через дескриптор"

для сравнения https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf

По умолчанию входные параметры передаются по ссылке. При передаче NULL
значения по ссылке оно преобразовывается преобразуется в эквивалент нуля, например, число 0 или
пустую строку. Если после указанного параметра указано ключевое слово NULL, то при
передаче значение NULL оно попадёт в функцию в виде нулевого указателя (null).

Примечание

Обратите внимание на то, что объявление функции с ключевым словом
NULL не гарантирует вам, что эта функция правильно обработает
входной параметр со значением NULL. Любая функция должна быть
написана или переписана таким образом, чтобы правильно обрабатывать
значения NULL. Всегда смотрите и используйте объявления функции,
предоставленные её разработчиком.

Если указано предложение BY DESCRIPTOR, то входной параметр передаётся по
дескриптору. Передача параметра по дескриптору облегчает обработку значений
NULL. Отметим, что это объявление работает только в том случае, если внешняя
функция поддерживает его. Простое добавление "BY DESCRIPTOR" к существующей
декларации не заставит его работать. Всегда используйте объявление блока,
обеспеченное функционалом внешней функции.

Предупреждение

При передаче параметра функции по дескриптору передаваемое значение
не приводится к задекларированному типу данных.


Этот кусок почти полностью отсутсвует в англ. версии.
То же, что присутствует - передано некорректно ( облегчает -> makes it possible ).

---------------

Касательно русскоязычного текста...

1) IMHO было бы хорошо ВСЕ ключевые слова перечислить в Таблице 5.27 - просто потому, что искать их внутри текста дольше и труднее. В частности перемешаивается два (или даже три) значения NULL - как общий литерал-константа и как аттрибут параметра функции (и возможно как константа C++)

2) преобразовывается -> преобразуется

3) "в виде нулевого указателя (null)" - тут в скобках непонятно что. Если идёт необъявленный переход с языка SQL на язык C или C++, то насколько помню там строго NULL большими буквами. Если же в скобках тоже SQL - то это просто тавтология. Мне кажется, здесь просто надо отослать читателя к Developer Guide или API Guide или где вообще будет описываться низкоуровневая методика разработки UDF. Просто в высокоуровневом руководстве по SQL нельзя "дать ассемблер" в два-три слова в скобках, тут надо либо полностью расписывать низкий уровень (что в этом документе в этой главе явно неуместно), либо просто явно прописать, что нужно читать другой уровень документации.
29 мар 18, 13:08    [21295896]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 8101
Arioch
1) про ключевое слово NULL не сказано вообще ничего
2) утверждается, что NULL можно передать только "через дескриптор"


это потому что английская версия есть перевод русской. И эти примечания в русскую версию были добавлены позже. И они правильные

Arioch
То же, что присутствует - передано некорректно ( облегчает -> makes it possible ).


это гляну, но вообще-то обрабатывать NULL можно и другим способом как описано выше

Arioch
1) IMHO было бы хорошо ВСЕ ключевые слова перечислить в Таблице 5.27 - просто потому, что искать их внутри текста дольше и труднее. В частности перемешаивается два (или даже три) значения NULL - как общий литерал-константа и как аттрибут параметра функции (и возможно как константа C++)

2) преобразовывается -> преобразуется

3) "в виде нулевого указателя (null)" - тут в скобках непонятно что. Если идёт необъявленный переход с языка SQL на язык C или C++, то насколько помню там строго NULL большими буквами. Если же в скобках тоже SQL - то это просто тавтология. Мне кажется, здесь просто надо отослать читателя к Developer Guide или API Guide или где вообще будет описываться низкоуровневая методика разработки UDF. Просто в высокоуровневом руководстве по SQL нельзя "дать ассемблер" в два-три слова в скобках, тут надо либо полностью расписывать низкий уровень (что в этом документе в этой главе явно неуместно), либо просто явно прописать, что нужно читать другой уровень документации.


1. Зачем? В этой таблице описаны заменяемые части синтаксиса. NULL в данном случае это просто ключевое слово. Его применение описано в тексте ниже. Или ты не можешь отличить что это за NULL в контексте предложения? Так читать параграф надо целиком, а не по отельной фразе.
2. Согласен.
3. Я не знаю что тут может быть не очевидного. В каком регистре он в C++ вообще пофиг, там можно и просто 0 записать, хотя это и не красиво
29 мар 18, 13:35    [21296062]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
Симонов Денис,

> Так читать параграф надо целиком, а не по отельной фразе.

если этот подход отмасштабировать, получится "давай вообще уберем из документации оглавление и индекс ключевых слов. Пусть читают всю книгу целиком."

возможность быстро найти краткую информацию по термину - это документации всегда в плюс.
если будет нужно - читатель сможет прочитать более детальное изложение ниже.
но вполне возможно, читатель сразу ещё по краткому описанию поймёт "это из другой оперы, это моей текущей задачи не касается" и съэкономит время.

Таблица 5.27 - это локальное оглавление. И краткое описание ключевых слов в нём было бы в плюс.

Симонов Денис
Я не знаю что тут может быть не очевидного.


Если скобки настолько самоочевидны, то они просто не нужны.
Например, не очевидно на каком это языке программирования, или это вообще не язык программирования.
Если брать общий термин, который можно "в википедии загуглить", то это будет null pointer или null reference

Симонов Денис
В каком регистре он в C++ вообще пофиг

Вообще-то C, в отличие от Паскаля и SQL, как раз регистро-зависимый язык. NULL, Null и null - три разных идентификатора. Хотя, возможно, в конкретных компиляторах тут и используется какая-нибудь сахарная магия.
29 мар 18, 13:51    [21296156]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
До кучи, пока в этой главе, посмотри насчёт CSTRING - 21295927

1) в доке в синтаксисе нет возможности указывать CHARACTER SET таким параметрам, а реально видимо и на входе и на выходе можно указать.

2) не понятно в чём считается ограничение длины, в доке написано в байтах, но видимо всё ж таки в буквах....

3) не упомянут implementation limit на максимум длины CSTRING, возможно стоит это повторить сразу по месту

4) "Максимальная длина нуль терминальной строки" - вот тут конечно подобрать номальный для русского языка термин весьма не просто. Но как самый минимум строка не терминальная, а терминированная. И нуль - через дефис. https://ru.wikipedia.org/wiki/Нуль-терминированная_строка
Хотя и в таком виде термин уродливый, но хотя бы корректный. Лучшего посоветовать не могу...
29 мар 18, 14:22    [21296300]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
d7i
Member

Откуда:
Сообщений: 257
Arioch
https://ru.wikipedia.org/wiki/Нуль-терминированная_строка
Хотя и в таком виде термин уродливый, но хотя бы корректный. Лучшего посоветовать не могу...

Ну, там же есть:
автор
Нуль-терминированная строка или C-строка (от названия языка Си) или ASCIIZ-строка — способ представления строк в языках программирования, при котором вместо введения специального строкового типа используется массив символов, а концом строки считается первый встретившийся специальный нуль-символ (NUL из кода ASCII


ASCIIZ-строка - термин встречается очень часто и должен быть однозначно понятен программисту. Коротко и ясно.
29 мар 18, 18:20    [21297316]     Ответить | Цитировать Сообщить модератору
 Re: ANN Руководство по языку SQL СУБД Firebird 2.5  [new]
Arioch
Member

Откуда:
Сообщений: 9650
d7i,

тогда уж Си-строка.

ASCIIZ не корректен - сейчас многие строки не ASCII ( UTF8, UTF-16, UCS4....)
30 мар 18, 17:14    [21300329]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 14 15 16 17 18 19 20 21 [22] 23   вперед  Ctrl
Все форумы / Firebird, InterBase Ответить