This repository has been archived by the owner on Jul 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
/
ibm_db-conn_error.py
109 lines (94 loc) · 6.3 KB
/
ibm_db-conn_error.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#! /usr/bin/python3
#-------------------------------------------------------------------------------------------------#
# NAME: ibm_db-conn_error.py #
# #
# PURPOSE: This program is designed to illustrate how to use the ibm_db.conn_error() API. #
# #
# Additional APIs used: #
# ibm_db.connect() #
# ibm_db.close() #
# #
# USAGE: Log in as a Db2 database instance user (for example, db2inst1) and issue the #
# following command from a terminal window: #
# #
# ./ibm_db-conn_error.py #
# #
#-------------------------------------------------------------------------------------------------#
# DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY #
# #
# (C) COPYRIGHT International Business Machines Corp. 2018, 2019 All Rights Reserved #
# Licensed Materials - Property of IBM #
# #
# US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP #
# Schedule Contract with IBM Corp. #
# #
# The following source code ("Sample") is owned by International Business Machines Corporation #
# or one of its subsidiaries ("IBM") and is copyrighted and licensed, not sold. You may use, #
# copy, modify, and distribute the Sample in any form without payment to IBM, for the purpose #
# of assisting you in the creation of Python applications using the ibm_db library. #
# #
# The Sample code is provided to you on an "AS IS" basis, without warranty of any kind. IBM #
# HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT #
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #
# Some jurisdictions do not allow for the exclusion or limitation of implied warranties, so the #
# above limitations or exclusions may not apply to you. IBM shall not be liable for any damages #
# you suffer as a result of using, copying, modifying or distributing the Sample, even if IBM #
# has been advised of the possibility of such damages. #
#-------------------------------------------------------------------------------------------------#
# Load The Appropriate Python Modules
import sys # Provides Information About Python Interpreter Constants, Functions, & Methods
import ibm_db # Contains The APIs Needed To Work With Db2 Databases
#-------------------------------------------------------------------------------------------------#
# Import The ipynb_exit Class Definition, Attributes, And Methods That Have Been Defined In The #
# File Named "ipynb_exit.py"; This Class Contains The Programming Logic Needed To Allow "exit()" #
# Functionality To Work Without Raising An Error Or Stopping The Kernel If The Application Is #
# Invoked In A Jupyter Notebook #
#-------------------------------------------------------------------------------------------------#
from ipynb_exit import exit
# Define And Initialize The Appropriate Variables
dbName = "SAMPLE"
userID = "db2inst1"
passWord = "Passw_rd" # The Wrong Password Is Used To Force An Error To Occur
dbConnection = None
# Display A Status Message Indicating An Attempt To Establish A Connection To A Db2 Database
# Is About To Be Made
print("\nConnecting to the \'" + dbName + "\' database ... ", end="")
# Construct The String That Will Be Used To Establish A Db2 Database Connection
connString = "ATTACH=FALSE" # Attach To A Database; Not A Server
connString += ";DATABASE=" + dbName # Required To Connect To A Database
connString += ";PROTOCOL=TCPIP"
connString += ";UID=" + userID
connString += ";PWD=" + passWord
# Attempt To Establish A Connection To The Database Specified
try:
dbConnection = ibm_db.connect(connString, '', '')
except Exception:
pass
# If A Db2 Database Connection Could Not Be Established, Display An Error Message And Exit
if dbConnection is None:
print("\nERROR: Unable to connect to the \'" + dbName + "\' database.")
errorCode = ibm_db.conn_error()
print("\nSQLSTATE: "+ errorCode + "\n")
exit(-1)
# Otherwise, Complete The Status Message
else:
print("Done!\n")
# Add Additional Db2 Database-Related Processing Here ...
# Attempt To Close The Db2 Database Connection That Was Just Opened
if not dbConnection is None:
print("Disconnecting from the \'" + dbName + "\' database ... ", end="")
try:
returnCode = ibm_db.close(dbConnection)
except Exception:
pass
# If The Db2 Server Connection Was Not Closed, Display An Error Message And Exit
if returnCode is False:
print("\nERROR: Unable to disconnect from the " + dbName + " database.")
errorCode = ibm_db.conn_error(dbConnection)
print("SQLSTATE: "+ errorCode + "\n")
exit(-1)
# Otherwise, Complete The Status Message
else:
print("Done!\n")
# Return Control To The Operating System
exit()