[python-sybase] Server Message filter for _servermsg_cb

Alexander Stepochkin Alexander_Stepochkin at troika.ru
Fri Feb 8 03:07:42 EST 2008


Hello,
I have recently encountered a problem while trying to backup
database.
_servermsg_cb raises error on messages that are not error for
backup.
Maybe I missed something.
I failed to work around this problem without changing
_servermsg_cb :

#====================================================================
def _servermsg_cb(ctx, conn, msg):
    skiperr = False
    hook = _output_hooks.get(conn)
    if hook:
        skiperr = hook(conn, msg)
    if skiperr: return

    mn = msg.msgnumber
    if mn == 2601: ## Attempt to insert duplicate key row in
object with unique index
        raise IntegrityError(msg)
    if mn == 2812: ## Procedure not found
        raise StoredProcedureError(msg)
    if not (mn in (0, 5701, 5703, 5704) or ((mn >= 6200) and (mn
< 6300))):
        # Non-errors:
        #    0      PRINT
        # 5701      Changed db context
        # 5703      Changed language
        # 5704      Changed character set (Sybase)
        # 6200-6299 SHOWPLAN output (Sybase)
        raise DatabaseError(msg)
#====================================================================

Then I specified in hook messages that I consider not errors
returning True.
If I am wrong and there is a simpler way to solve the problem
please help me.

Alexander Stepochkin,
IT Department,
Troika Dialog, Moscow, Russia
+7 495 258-05-00 ext. 1311



_______________________________________________________

The information contained in this message may be privileged and confidential and protected from disclosure. If you are not the original intended recipient, you are hereby notified that any review, retransmission, dissemination, or other use of, or taking of any action in reliance upon, this information is prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and delete it from your computer. Thank you for your cooperation. Troika Dialog, Russia. 
Please contact our IT Helpdesk at (+7495) 258 0500 Ext. 1111 or via e-mail: it_department at troika.ru if you need assistance.



More information about the Python-sybase mailing list