sql >> データベース >  >> RDS >> Sqlserver

pyodbcはデータベースに接続できません

    実は、問題のデータベースはすでにローカルマシン上のSQL Serverのデフォルトインスタンスに接続されていたため、接続に必要なのは

    だけでした。
    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)
    

    混乱の主なポイントは2つありました:

    Q:SQL Serverの「デフォルトインスタンス」の名前は何ですか?

    A:ありません。

    SQL Serverインスタンスを名前で参照する場合、デフォルトインスタンス 名前付きインスタンスがマシンの名前で呼ばれるだけです。 MachineName\InstanceNameで識別されます 。したがって、PANORAMAという名前のサーバーでは

    • SQL Serverの「デフォルトインスタンス」をインストールする場合、それをPANORAMAと呼びます。 。
    • 「SQLEXPRESS」という「名前付きインスタンス」をインストールする場合、それをPANORAMA\SQLEXPRESSと呼びます。 。

    ローカルマシン上のSQLサーバーインスタンスを参照している場合は、(local)を使用できます。 PANORAMAの代わりに 。

    Q:(local)と(localdb)は同じ意味ですか?

    A:いいえ。

    (local) および(local)\InstanceName SQLServerの「実際の」サーバーベースのインスタンスを参照してください。これらは、SQLServerが最初にリリースされてから存在しているインスタンスです。これらはサービスとして実行され、ネットワーク接続を受け入れて、データベースサーバーに期待されるすべてのことを実行できます。

    (localdb) および(localdb)\InstanceName 参照– (localdb)を使用 通常、(LocalDB)として大文字になります わかりやすくするために–「SQLServerLocalDB」インスタンスに接続するために使用されます。これらは、主に開発者を対象とした一時的なローカルSQLServerインスタンスです。詳細については、次のMSDNブログ投稿を参照してください。

    SQL Express v LocalDB v SQL Compact Edition



    1. MySQLとJPAを使用してSpringBootでRESTAPIを構築する方法

    2. Python:サウンドによるデータのクエリ

    3. OracleTriggerWHEN句の例

    4. データベース名を指定せずにPostgreSQLに接続するにはどうすればよいですか?