GithubHelp home page GithubHelp logo

Comments (9)

rolweber avatar rolweber commented on June 10, 2024 1

Could you please provide some example code that reproduces this problem?

from pypyodbc.

Ahmed1Arshed avatar Ahmed1Arshed commented on June 10, 2024 1

import pypyodbc as pypyod

conn = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};SERVER=******;DATABASE=;UID=;PWD=********'
)
cursor = conn.cursor()
update_data(row , config);
cursor.execute(
'UPDATE prices SET value = ?,freeze_expiry = ?,is_freeze = ?,pricing_method = ?,updated_by = ?,freeze_reason = ?,updated_at =CURRENT_TIMESTAMP WHERE id = ?',
(price, freeze_expiry, is_freez, pricing_method, updated_by,
freeze_reason, product_update_id))

executor = concurrent.futures.ThreadPoolExecutor(10)
for row in csv_file.itertuples(index=True):
executor.submit(update_data, row, config)

from pypyodbc.

rolweber avatar rolweber commented on June 10, 2024

Thank you. I'll leave it to @braian87b to decide whether that is a valid use case.

from pypyodbc.

Ahmed1Arshed avatar Ahmed1Arshed commented on June 10, 2024

what i am doing is reading a csv row which i need to update to my db. When i am using a single thread it's working smoothly but as i use Thread-pool it giving Segmentation fault (core dumped)

from pypyodbc.

rolweber avatar rolweber commented on June 10, 2024

What I see is a single DB connection, and a single cursor. But you're calling update_data from multiple threads, possibly simultaneously. I don't know whether that is supposed to work or not. If I had to guess, I'd say no.

from pypyodbc.

Ahmed1Arshed avatar Ahmed1Arshed commented on June 10, 2024

Why should i need to have multiple connection on every update.Connection is a simple thing that we are using that particular db for the operation we need to perform

from pypyodbc.

rolweber avatar rolweber commented on June 10, 2024

Because database connections are stateful?

And for the records: One thing that database connections are certainly not is simple.

from pypyodbc.

Ahmed1Arshed avatar Ahmed1Arshed commented on June 10, 2024

In that case it must be giving issue in single thread too isn't that so

from pypyodbc.

rolweber avatar rolweber commented on June 10, 2024

Database connections are certainly meant to execute multiple transactions in succession over the same connection. Creating a database connection is expensive, therefore they should be re-used in this fashion. Running multiple transactions over the same connection simultaneously is an entirely different matter.

from pypyodbc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.