|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Alexander Gotlib 2:5080/1003 31 Mar 2003 16:21:33 To : Alexander Gotlib Subject : Что выбрать? --------------------------------------------------------------------------------
Hail there All!
Просветите по поводу следующих СУБД, пожалуйста - MySQL, pgSQL,
Interbase/Firebird (необходима реализация под FreeBSD).
1. MySQL не подходит тем, что не знает про хранимые процедуры.
Это я не там смотрел или с этим и в самом деле в морг?
2. pgSQL очень даже умеет, но при написании этих самых хранимых
процедур напоролся на неприятности с обработкой ошибок. Долго копался в
документации и к сожалению так и не понял какой механизм предлагается
для обработки ошибок в хранимых процедурах при жизни с постгресом. Про
EXEPTION он, к сожалению, не знает (или я все же что-то пропустил?).
Единственное, что нашел это GET DIAGNOSTICS:
19.5.5. Obtaining result status
There are several ways to determine the effect of a command. The first
method is to use the GET DIAGNOSTICS, which has the form:
GET DIAGNOSTICS variable = item [ , ... ] ;
This command allows retrieval of system status indicators. Each
item is keyword identifying a state value to be assigned to the specified
variable (which should be of the right data type to receive it). The
currently available status items are ROW_COUNT, the number of rows
processed by the last SQL query sent down to the SQL engine; and
RESULT_OID, the OID of the last row inserted by the most recent SQL
query. Note that RESULT_OID is only useful after an INSERT query.
Это, конечно, хорошо, но хотелось бы большего. Хотелось бы иметь
возможность определить _причину_ ошибки после каждой "неудачной"
операции, а не просто факт ошибки.
Hапример творим банальный INSERT с нарушением целостности
уникального ключа. Постгрес на нас ругается, но ругается просто
текстовым сообщением об ошибке. Что с ним дальше делать не совсем
понятно. Хотелось бы иметь возможность его обработать и вернуть в PHP
соответствующий еррор-код, чтобы можно было сгенерить корректное
сообщение для пользователя.
Как живут с постгресом в этом плане (писать процедуры
планирую на PL/pgSQL)?
3. Что скажете про Interbase/Firebird в сравнении с pgSQL?
Умеет ли он то, что меня интересует?
P.S.: Oracle, DB2, MSSQL не предлагайте. Комерческие СУБД
использовать не имею возможности. :-(
--
WBR, Alexander B. Gotlib,
mailto:alex@cca.usart.ru / ICQ# 13043204.
-|- -|-
--- ifmail v.2.15dev5
* Origin: CIA USURT (2:5080/1003@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/1464643700911.html, оценка из 5, голосов 10
|