|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
Надо генерить последовательные символьные коды вида: AAAA, AAAB, ...., ZZZZ. Символы только [A-Z]. Кто-то уже такое делал подобное в виде хранимой процедуры? Или подкиньте идею как генерировать очередной код. Я пока думаю сделать так: завести генератор обычный и его итерировать средствами FB. И написать перекодировку int -> символьное представление, т.е. 0 -> AAAA, 1->AAAB и т.д. Что думаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 03:48 |
|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
Alexey Kuznetsov... Я пока думаю сделать так: завести генератор обычный и его итерировать средствами FB. И написать перекодировку int -> символьное представление, т.е. 0 -> AAAA, 1->AAAB и т.д. Что думаете? А еще лучше - конвертер (Int64 -> строка) разместить на клиенте. Нафига это счастье на сервере? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 04:34 |
|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
ZeroMQА еще лучше - конвертер (Int64 -> строка) разместить на клиенте. Нафига это счастье на сервере? Мне удобнее на сервере, так как у меня вся логика построена на хранимках, но в целом, я думаю можно и на клиенте конвертилку разместить: дернуть генератор с клиента, преобразовать в строку и затем сделать insert в БД. Подумаю в этом направлении тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 04:54 |
|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
Alexey Kuznetsov, ну, если ты в FB 3.0 проектируешь - можно и функцию объявить. Простое отображение числа в системе счисления с основанием 26 и ведущими нулями. Последовательно делишь число на 26 4 (=456976 10 ), остаток - на 26 3 (=17576 10 ), потом - на 26 2 (=676 10 ), на 26 1 (=25 10 ), плюс остаток. К результату добавляешь "вес" кода символа "А", получаешь очередной символ. Типа такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Не проверял (пока не используюFB 3/0, но, думаю, мысль понятна. Ну или UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 05:58 |
|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
with recursive t(val, chr) as (select 65 val, 'A' chr from rdb$database union all select val+1, ascii_char(val+1) from t where t.val<90) select t1.chr||t2.chr||t3.chr||t4.chr from t t1,t t2,t t3,t t4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 18:34 |
|
Генератор буквенных кодов
|
|||
---|---|---|---|
#18+
somesomeonewith recursive t(val, chr) as (select 65 val, 'A' chr from rdb$database union all select val+1, ascii_char(val+1) from t where t.val<90) select t1.chr||t2.chr||t3.chr||t4.chr from t t1,t t2,t t3,t t4 Ухты. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2015, 18:40 |
|
|
start [/forum/topic.php?fid=40&msg=39052193&tid=1562627]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 387ms |
0 / 0 |