sql >> Database >  >> RDS >> Sqlserver

pyodbc kan geen verbinding maken met de database

Het bleek dat de betreffende database al was gekoppeld aan het standaardexemplaar van SQL Server op de lokale computer, dus alles wat nodig was om verbinding te maken was

import pyodbc
conn_str = (
    r"Driver={SQL Server Native Client 11.0};"
    r"Server=(local);"
    r"Database=online_banking;"
    r"Trusted_Connection=yes;"
    )
conn = pyodbc.connect(conn_str)

Er waren twee belangrijke punten van verwarring:

V:Wat is de naam van een "standaardinstantie" van SQL Server?

A:Hij heeft er geen.

Bij het verwijzen naar een SQL Server-instantie op naam, een standaardinstantie gaat gewoon door de naam van de machine, terwijl een benoemde instantie wordt geïdentificeerd door MachineName\InstanceName . Dus op een server met de naam PANORAMA

  • Als we een "standaardinstantie" van SQL Server installeren, noemen we dit PANORAMA .
  • Als we een "named instance" met de naam "SQLEXPRESS" installeren, verwijzen we ernaar als PANORAMA\SQLEXPRESS .

Als we verwijzen naar een SQL-serverinstantie op de lokale machine, kunnen we (local) . gebruiken in plaats van PANORAMA .

V:Betekenen (local) en (localdb) hetzelfde?

A:NEE.

(local) en (local)\InstanceName verwijzen naar "echte" server-gebaseerde exemplaren van SQL Server. Dit zijn de instanties die er al zijn sinds SQL Server voor het eerst werd uitgebracht. Ze werken als een service en kunnen netwerkverbindingen accepteren en doen alle dingen die we van een databaseserver verwachten.

(localdb) en (localdb)\InstanceName referenties – met (localdb) meestal met een hoofdletter als (LocalDB) voor de duidelijkheid - worden gebruikt om verbinding te maken met "SQL Server LocalDB"-instanties. Dit zijn tijdelijke lokale SQL Server-instanties die in de eerste plaats bedoeld zijn voor ontwikkelaars. Zie de volgende MSDN-blogpost voor details:

SQL Express v LocalDB v SQL Compact Edition



  1. Hoe MapReduce werkt in Hadoop

  2. Het zit 'm in de details

  3. Optimale manier om strings samen te voegen/te aggregeren

  4. Kan Hibernate werken met de ON DUPLICATE KEY UPDATE-syntaxis van MySQL?