Forum Discussion
Error connecting to SQL Database using Fabric notebook
- Anonymous2 years ago
Hi Ryan_OC ,
I have tried connecting to it using pyodbc, Can you give a try?
import pyodbc tenant_id = "tenant_id" service_principal_id = f"client_id@{tenant_id}" # important to include your @fully qualified domain or tenant_id service_principal_secret = "client_secret" # Define your SQL Server details server_name = "server_connection_string" database_name = "database_name" queryStr = 'SELECT 1 AS a, 2 AS b UNION ALL SELECT 2 AS a, 3 AS b' # Define the SQL Server ODBC connection string conn_str = ( f"DRIVER={{ODBC Driver 18 for SQL Server}};" f"SERVER={server_name};" f"DATABASE={database_name};" f"UID={service_principal_id};" f"PWD={service_principal_secret};" f"Authentication=ActiveDirectoryServicePrincipal" ) # Establish the connection conn = pyodbc.connect(conn_str) # Execute a query cursor = conn.cursor() cursor.execute(queryStr) resultList = cursor.fetchall() resultColumns = columns = [column[0] for column in cursor.description] print(str([dict(zip(columns, row)) for row in resultList]))
Incase if this doesn't help, I will try to do a deeper investigation.
Thank you
Hi Ryan_OC ,
I am not sure of that.
Have you followed below format?
tenant_id = "tenant_id"
service_principal_id = f"client_id@{tenant_id}" # important to include your @fully qualified domain or tenant_id
service_principal_secret = "client_secret"
Same problem 😞
- Flipper2 years agoFrequent Visitor
Hi Ryan_OC
Did you manage to get this working? I think I'm essentially doing the same thing as you (the DP-600 course) and now attempting to connect to my own instance.
As you can see from the above, I'm able to connect to the database and run the query without any error.
However, when I then change the query to select from a table in the DB, I get the following:
I'm basically trying to run the contents of a table into the lakehouse via a notbook - I can probably do this via a Gen2 pipleline and use my existing content gateway, but would be much better to run via notebook.
Thanks
- Flipper2 years agoFrequent Visitor
Ahhhh - for anyone who is interested, my issue was with the query - Fabric didn't like column 13 of my query (which was using a function to return a date), when I cast that to a varchar it was fine!
- Ryan_OC2 years agoHelper I
Good news! Glad it came right for you