|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
JacobianОракул (цитата) "пытается определять тип параметра" как NUMBER и выдает ошибку, если в качестве параметра передается какая-нибудь строка. Между "определением требуемого типа параметра" и "приведением типа данных, что ему пришли, к типу поля при непосредственном сравнении с полем" дистанция огромного размера. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 12:30 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
То есть в конструкции вида: Код: sql 1. 2. 3. 4. 5.
если, как вы говорите, соблюдать "дистанцию", то в первом случае Firebird просто попытается "привести" параметр к типу поля, а во втором случае попытается определить тип, например, исходя из того, что положили в THEN? А в других базах (том же Оракуле) в первом случае тоже будет просто сделано приведение типов, а во втором случае вообще никакого определения типа параметра не будет, так же как и в других вышеназванных серверах? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 12:42 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Jacobianв конструкции вида Ты же понимаешь, что в этой конструкции булевское выражение для проверки и выражение для формирования результата это две совсем-совсем разные вещи?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 12:54 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
А что, кстати, умные ораклы и иже с ними вернут как результат запроса Код: plsql 1.
Каков будет тип результата? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:04 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
IBExpertКаков будет тип результата? Ставлю на VARCHAR2(4000). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:07 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
@IBExpert. Запрос, что я привел в самом начале - это примерно в 20 раз упрощенная версия того запроса, который запускается у меня в одном из модульных тестов. Так вот в Оракле, как и в остальных РСУБД, за исключением Firebird, все отрабатывает так, как по крайней мере ожидаешь. Конкретно твой запрос не проверял. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:09 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
JacobianКонкретно твой запрос не проверял. Вообще-то это как раз конкретно твой запрос, из-за которого ты и начал истерить: Jacobian>>> # а теперь давайте поменяем чуток наш запрос Код: sql 1. 2.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:17 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovIBExpertКаков будет тип результата? Ставлю на VARCHAR2(4000). Так точно. В PG, кстати, будет примерно так же: TEXT. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:24 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Хотя, с Ораклом я наверное погорячился. Из джавы работаю. Там если явно не установить значение, получишь Not all variables bound, так что все не так однозначно (с). Да и в SQL*Plus вроде такое же наблюдалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:27 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Во-первых, я не истерил. Во-вторых Код: sql 1.
Это буквально не то же самое, что Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:27 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
JacobianВо-первых, я не истерил. Во-вторых Во-первых, внимательно посмотри на сабж. Во-вторых, сравнение не имеет значения, вся фишка в параметрах на всех ветках результата. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2016, 13:31 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Jacobian... в MySQL, SQLite, Postgres, Oracle и MSSQL подобная параметризация запроса работает, как и ожидаешь. За "всю Одессу" а не скажу, то вот все драйвера Python для MySQL при параметризации просто подставляют значения в текст запроса и уже его отправляют на сервер. Т. е. с типами вовсе не парятся. :) Что приводит к тому, что ожидаемого выигрыша в скорости при использовании запросов с параметрами ты не получишь. Т. е. работают они не совсем "как и ожидалось". :) Ну а в FDB можно напрямую вызвать подготовку запроса и у получившегося объекта запросить ожидаемые типы аргументов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2016, 20:50 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Tonalвсе драйвера Python для MySQL при параметризации просто подставляют значения в текст запроса У них выбора нет. У мускуля в параметризованных запросах сидело столько багов, что проще было считать, что их не существует в принципе. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2016, 21:15 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Это в каких версиях? И как сейчас? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2016, 21:55 |
|
Firebird + Python = bullshit
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovУ них выбора нет. У мускуля в параметризованных запросах сидело столько багов, что проще было считать, что их не существует в принципе. Тем не менее в PHP драйвере mysqli есть честные параметризованные запросы. Что интересно, при привязке переменных типы нужно указываются явно. :) Вполне возможно, что опциональное явное указание типов параметров было бы полезно и python-ическому FDB, если бы его можно организовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 07:25 |
|
|
start [/forum/topic.php?fid=40&msg=39240641&tid=1562169]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 443ms |
0 / 0 |