2013-09-25 3 views
0

Итак, вот мой прецедент. Я должен подключиться к различным типам БД (MSSQL, oracl, MYSQL и т. Д.). У меня есть .sql файлы для каждой из этих баз данных. Как кажется, sqlalchemy не может запускать файл .sql, поэтому нам нужно открывать и выполнять инструкции один за другим из файлов .sql по соединению.SQLAlchemy для подключения к MSSQL с использованием имени экземпляра

Итак, ребята, у меня есть эта информация, и я хотел подключиться с помощью SQL Alchemy.

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

здесь MSSQLServer является экземпляром. Информация о DB не предоставляется. так мне нужно имя базы данных для подключения к БД?

это моя команда

engine = create_engine('mssql+pyodbc://sa:[email protected]/MSSQLSERVER', echo=True) 

это мой полный код

from sqlalchemy.engine import create_engine 
engine = create_engine('mssql+pyodbc://sa:[email protected]', echo=False) 
connection = engine.connect() 
connection.execute(
    """ 
    select @@version 
    """ 
) 
connection.close() 

ответ

0

вам не нужно имя БД, вы можете использовать эту функцию, я написал: (это работает для меня на 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`......... 
+0

Я отредактировал свой вопрос, чтобы немного рассказать о том, что я пытаюсь выполнить здесь. – Hemant

+0

Я пробовал без имени экземпляра. он, похоже, не работает для MSSQL. Я получаю следующую ошибку: sqlalchemy.exc.DBAPIError: (ошибка) («IM002», «[IM002] [Microsoft] [диспетчер драйверов ODBC] Имя источника данных не найдено и не указан драйвер по умолчанию (0) (SQLDriverConnect) ') None None – Hemant

+0

Вы запускаете свою учетную запись sql следующим образом: self.connection.execute (SQLStatment) PS ошибка, которую вы написали, связана с соединением или когда вы пытаетесь отправить заявление? –

Смежные вопросы