|
Тема |
Re: Firebird процедура SELECT * ... [re: Maнoл4o] |
|
Автор |
NickBass (бас-програмист) |
|
Публикувано | 09.05.06 12:09 |
|
|
Не мога да кажа как стоят нещата в MySQL и MSSQL. Мога само да предполагам, че ако позволяват SELECT * FROM ... в сторната процедура, то тогава самата процедура трябва да позволява връщане на променлив брой колони например.
Иначе опасността от грешката в примера, който ти дадох е реална. Да се разместят местата на колоните въобще не е рядкост, особено ако дадена БД се поддържа от повече девелопери. Прост пример е с отпадането на данъчния номер. Понеже не е необходим вече, някой може да го дропне като колона или просто да го премести най-отдолу хем да не му се пречка, хем да не го трие от всички заявки където фигурира... Нали се сещаш...
---------------------
А всъщност SELECT * FROM tableName си работи нормално когато не е в процедура.
---------------------
Да работи, защото има разлика в синтаксиса и предназначението на PSQL (Procedure SQL) и ISQL. Твоят пример е ISQL заявка, която приложението ти изпраща към сървъра, докато при процедурите и тригерите важат правилата на PSQL. При Firebird концепцията е такава, че PSQL не позволява * в SELECT заявка. Така са решили хората и аз лично съм съгласен с тях, защото дори и да ми позволяваше, аз пак не бих използвал * заради случки като горната.
|
| |
|
|
|