0

わかりましたので、これが私のユースケースです。さまざまなタイプの DB (MSSQL、oracl、MYSQL など) に接続する必要があります。これらのデータベースごとに .sql ファイルがあります。sqlalchemy は .sql ファイルを実行できないように見えるため、接続を介して .sql ファイルからステートメントを 1 つずつ開いて実行する必要があります。

皆さん、私はこの情報を持っており、SQL Alchemy を使用して接続したいと考えていました。

<db type="MSSQL" version="2005" patch_level="SP2" port="1433" id="MSSQLSERVER"/>

ここで MSSQLServer はインスタンスです。DB 情報は提供されません。DBに接続するにはDB名が必要ですか?

これが私の命令です

engine = create_engine('mssql+pyodbc://sa:pass@172.21.153.227/MSSQLSERVER', echo=True)

これは私の完全なコードです

from sqlalchemy.engine import create_engine
engine = create_engine('mssql+pyodbc://sa:pass@172.21.153.227', echo=False)
connection = engine.connect()
connection.execute(
    """
    select @@version
    """
)
connection.close()
4

1 に答える 1

1

データベース名は必要ありません。私が書いたこの関数を使用できます:(mySQLで動作します)

def ConnectToDB(self, server, uid, password):
        """
        this method if for connecting to a db
        @param server: server name
        @param uid: username
        @param password: password
        """

        connection_string = 'mysql://{}:{}@{}'.format(uid, password, server)

        try:
            self.engine = create_engine(connection_string)
            self.connection = self.engine.connect()
        except exc.SQLAlchemyError, e:
            self.engine = None
            return False, e

        return True, None

SQL ステートメントでは、DB とテーブルを次のように指定します。

INSERT INTO `dbName`.`dbTable`.........
于 2013-09-25T09:38:24.367 に答える