This message was deleted.
# ask-marvin
s
This message was deleted.
m
Your message was too long, here's your message at the allowed limit: Whey would this flow result in this error?
Copy code
from prefect import flow task get_run_logger from prefect blocks system import Secret import sqlalchemy as sa import pandas as pd @task(name = Query SQL Database ) def query_database(block_name str sql_query str) logger = get_run_logger() <http //logger info|logger info>( Getting database credentials from Prefect Secret block ) try credentials = Secret load(block_name) get() except Exception as e logger error(f Failed to get credentials {e} ) raise <http //logger info|logger info>( Connecting to database ) try engine = sa create_engine(credentials) except Exception as e logger error(f Failed to connect to database {e} ) raise <http //logger info|logger info>( Running query on the database ) try with engine connect() as connection result = pd read_sql(sql_query connection) except Exception as e logger error(f Failed to run query {e} ) raise <http //logger info|logger info>(f Query result {result} ) return result @flow(name = Simple Database Query Flow ) def flow(block_name str sql_query str) result = query_database(block_name sql_query) return result
```Task run failed with exception InterfaceError( (pyodbc InterfaceError) ('IM002' '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') ) Traceback (most recent call last) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\base py line 143 in init self _dbapi_connection = engine raw_connection() ~~~~~~~~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\base py line 3309 in raw_connection return self pool connect() ~~~~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 447 in connect return _ConnectionFairy _checkout(self) ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 1264 in _checkout fairy = _ConnectionRecord checkout(pool) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 711 in checkout rec = pool _do_get() File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\impl py line 177 in _do_get with util safe_reraise() ~~~~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\util\langhelpers py line 224 in exit raise exc_value with_traceback(exc_tb) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\impl py line 175 in _do_get return self _create_connection() ~~~~~~~~~~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 388 in _create_connection return _ConnectionRecord(self) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 673 in init self __connect() ~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 899 in __connect with util safe_reraise() ~~~~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\util\langhelpers py line 224 in exit raise exc_value with_traceback(exc_tb) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\pool\base py line 895 in __connect self dbapi_connection = connection = pool _invoke_creator(self) ~~~~~~~~~~~~~~~~~~~~^^^^^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\create py line 661 in connect return dialect connect(*cargs *cparams) ~~~~~~~~~~~~~~~^^^^^
^^^^^^^^^^^^^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\default py line 630 in connect return self loaded_dbapi connect(*cargs *cparams) # type ignore[no-any-return] # NOQA E501 ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ pyodbc InterfaceError ('IM002' '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') The above exception was the direct cause of the following exception Traceback (most recent call last) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\prefect\task_engine py line 990 in run_context yield self File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\prefect\task_engine py line 1644 in run_task_sync engine call_task_fn(txn) ~~~~~~~~~~~~~~~~~~~^^^^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\prefect\task_engine py line 1007 in call_task_fn result = call_with_parameters(self task fn parameters) File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\prefect\utilities\callables py line 210 in call_with_parameters return fn(*args **kwargs) File C \Users\PREFEC~1\AppData\Local\Temp\tmpk3u4qqy8prefect\Syteline-main\prefect\test-database-query\flow py line 23 in query_database with engine connect() as connection ~~~~~~~~~~~~~~^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\base py line 3285 in connect return self _connection_cls(self) ~~~~~~~~~~~~~~~~~~~~^^^^^^ File C \Users\prefectservice\Documents\GitHub\Syteline\prefect\venv\Lib\site-packages\sqlalchemy\engine\base py line 145 in init Connection