|
|
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
Добрый день! В Firebird работал крайне редко, в основном на Oracle. В связи с этим вопрос - есть ли аналоги too_many_rows и no_data_found в Firebird? Как мне отловить ошибки, если таковые произошли в запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 09:29 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 09:35 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
я читал это, но мне все равно непонятно... будет что-то подобное? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. но как мне отличить no_data_found от too_many_rows, хотел через SQLCODE, но не нашел подобных кодов в http://firebirdsql.su/doku.php?id=gdscodes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:27 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
aidynchikно как мне отличить no_data_found от too_many_rows no_data_found - нет в ФБ такой ошибки. Если запрос не возвращает данные, значит ничего нет, и это не ошибка. При этом Код: sql 1. 2. 3. 4. в somevar будет null. Отличить его от null в столбце test, если вернулась 1 запись, невозможно. Есть трюк - можно присвоить somevar до выполнения запроса какое-нибудь значение, которое точно не может быть ни в одном столбце test. Например Код: sql 1. 2. 3. 4. 5. 6. 7. А вот если запрос в таком виде возвращает больше одной строки - будет явная ошибка multiple rows in singleton select , и ее уже можно обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:33 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
kdv, спасибо :) а будет ли явная ошибка при операции insert - parent key not found? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:43 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
kdvОтличить его от null в столбце test, если вернулась 1 запись, невозможно. IF (ROW_COUNT = 0) THEN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:44 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
aidynchikа будет ли явная ошибка при операции insert - parent key not found? Если FK есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:46 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
dimitr, спасибо, забыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:49 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
kdvaidynchikно как мне отличить no_data_found от too_many_rows no_data_found - нет в ФБ такой ошибки. Если запрос не возвращает данные, значит ничего нет, и это не ошибка. При этом Код: sql 1. 2. 3. 4. в somevar будет null. Отличить его от null в столбце test, если вернулась 1 запись, невозможно. В somevar будет то значение, которое было до выполнения этого запроса. Тоесть блок Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. вернет единицу. У меня тут вопросс к знающим товарищам - если закомментировать строку "a = 1;", всегда ли в а будет null при выполнении такого запроса, или же лучше на это не закладываться и обнулять переменные самостоятельно. Тоесть, инициируются ли переменные null-ом неявно или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:18 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
miwaonlineТоесть, инициируются ли переменные null-ом неявно или нет? Разве с иным поведением встречался? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:20 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
wadmanmiwaonlineТоесть, инициируются ли переменные null-ом неявно или нет? Разве с иным поведением встречался? :) В подкорку забит анекдот о яблоках, поэтому переменным всегда присваиваю начальные значения. Иногда переменных бывает много и допускаю, что мог где-то что-то пропустить. Ну и то, что я ни разу с таким не сталкивался еще не значит, что такого нет. Если что-то работает, то еще не значит, что оно работает правильно © ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:25 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
miwaonlineВ somevar будет то значение, которое было до выполнения этого запроса. Тоесть блок Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. вернет единицу. У меня тут вопросс к знающим товарищам - если закомментировать строку "a = 1;", всегда ли в а будет null при выполнении такого запроса, или же лучше на это не закладываться и обнулять переменные самостоятельно. Тоесть, инициируются ли переменные null-ом неявно или нет? в этом случае да. Но вот если вдруг случайно ты будешь выполнять запрос Код: sql 1. 2. 3. 4. в цикле, то переменную лучше явно обнулять перед началом запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:37 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
miwaonlineТоесть, инициируются ли переменные null-ом неявно или нет?В 2.5 точно инициализируются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:47 |
|
||
|
Аналоги too_many_rows и no_data_found в Firebird
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисНо вот если вдруг случайно ты будешь выполнять запрос Код: sql 1. 2. 3. 4. в цикле, то переменную лучше явно обнулять перед началом запроса. Ну это понятно - в переменной останется значение из предыдущей итерации. Интересует больше такая полугипотетическая ситуация Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:50 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38766054&tid=1563310]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 426ms |

| 0 / 0 |
