Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for context manager with connection #941

Closed
wants to merge 1 commit into from
Closed

Support for context manager with connection #941

wants to merge 1 commit into from

Conversation

Earammak
Copy link
Collaborator

@Earammak Earammak commented May 20, 2024

Is your feature request related to a problem? Please describe.
When working with IO, It is common to acquire some resource i.e open('file.txt') or ibm_db_dbi.connect(connection_str). These resources also have to manually closed i.e fp.close() or connection.close(). Developers may forget to clean up this resources and this could lead to resource leaks. Python solves this problem with context managers which automatically solve the problem of resource management and ensure proper cleanup. They provide a convenient and reliable way to allocate and release resources, such as connecting and disconnecting from a database.

Context managers could provide a concise and intuitive way to handle database connections and transactions, ensuring proper cleanup and reducing the risk of resource leaks. With context managers, developers can write cleaner and more readable code by encapsulating the database-related operations within a well-defined scope. Additionally, context managers can also enable automatic rollback of transactions in case of exceptions, ensuring data consistency and integrity.

Describe the solution you'd like
Context managers to be added to connection objects such that they can be used easily like:

with ibm_db_dbi.connect(connection_str) as connection:
cursor = connection.cursor()
cursor.execute('SELECT * from table')
result = cursor.fetchall()
This removes the need for manual cleanup of resources

Describe alternatives you've considered

Additional context

@bimalkjha
Copy link
Member

Fix for "Support for context managers with Connection object" #851

@jaeger-2601
Copy link

How will this code handle exceptions occurring inside the scope of the context manager?

@Earammak
Copy link
Collaborator Author

How will this code handle exceptions occurring inside the scope of the context manager?

Can please give some exceptions examples here to handle.

@Earammak Earammak closed this by deleting the head repository May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants