前提条件 Eclipse は Pleiades Eclipse 4.7 Oxygen です。前提となる環境は以下を参照して下さい。 Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備 Pleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録する ▼ プロジェクトの作成方法はこちらを参照して下さい Pleiades Eclipse 4.7 Oxygen で Python を使って MySQL にアクセスする pywin32 + COM COM 経由で ADO を使って MySQL にアクセスする為に、pywin32 をインストールします。 インストールは、pip install pywin32 でインストールできます。但し、『Fatal error in launcher: Unable to create process using '"'』というエラーが出た場合は、以下のコマンドを実行してから再度実行して下さい。python -m pip install -U pippywin32 の readme にもありますが、さらに『COMオブジェクトの登録やWindowsサービスの実装などの「システムワイド」機能でpywin32を使用する場合は』管理者権限のコマンドプロンプトから以下を実行しますpython Scripts/pywin32_postinstall.py -install▼ 実行結果Copied pythoncom36.dll to C:\WINDOWS\system32\pythoncom36.dll Copied pywintypes36.dll to C:\WINDOWS\system32\pywintypes36.dll Registered: Python.Interpreter Registered: Python.Dictionary Registered: Python -> Software\Python\PythonCore\3.6\Help[None]=None -> Software\Python\PythonCore\3.6\Help\Pythonwin Reference[None]='C:\\pleiades\\python\\3\\Lib\\site-packages\\PyWin32.chm' Pythonwin has been registered in context menu Creating directory C:\pleiades\python\3\Lib\site-packages\win32com\gen_py Shortcut for Pythonwin created Shortcut to documentation created The pywin32 extensions were successfully installed.
Connector/ODBC 5.3.10 ADO から接続する場合、純粋に Windows からのアクセスになるので ODBC ドライバが必要になります。Python が 64ビットならば、ODBC ドライバも 64ビット用が必要になります。 ダウンロードページ com_ado_mysql 以下は、ADO + COM で行われる標準的なレコードセットの読み込みと同時更新の処理です。 特徴的なのは、レコードセットの Fields コレクション( Field オブジェクト )を使用して値を直接セットして一行づつレコードを更新するところです。
import win32com.client adOpenDynamic = 2 adLockOptimistic = 3 cn = win32com.client.Dispatch("ADODB.Connection") rs = win32com.client.Dispatch("ADODB.Recordset") driver = "{MySQL ODBC 5.3 Unicode Driver}" server = "localhost" DB = "lightbox" User = "root" Pass = "" ConnectionString = "Provider=MSDASQL;Driver={0};Server={1};DATABASE={2};UID={3};PWD={4};" ConnectionString = ConnectionString.format(driver,server,DB,User,Pass) print(ConnectionString) """"""""""""""""""""""""""" 接続 """"""""""""""""""""""""""" try: cn.Open( ConnectionString ) except Exception as e: print( e ) exit() rs.CursorType = adOpenDynamic rs.LockType = adLockOptimistic rs.Open( "select * from 社員マスタ where 社員コード <= '0004' ", cn ) while not rs.EOF: print(rs.Fields("社員コード").Value,end=",") print(rs.Fields("氏名").Value, end=",") print(rs.Fields("フリガナ").Value, end=",") print(rs.Fields("所属").Value, end=",") print(rs.Fields("性別").Value, end=",") print(rs.Fields("給与").Value, end=",") print(rs.Fields("手当").Value, end=",") # NULL の場合は None と出力 print(rs.Fields("管理者").Value, end=",") print("{0:%Y/%m/%d}".format(rs.Fields("作成日").Value), end=",") print("{0:%Y/%m/%d}".format(rs.Fields("更新日").Value), end=",") print("{0:%Y/%m/%d}".format(rs.Fields("生年月日").Value)) rs.Fields("管理者").Value = "0002" rs.Update() rs.MoveNext() """"""""""""""""""""""""""" 接続解除 """"""""""""""""""""""""""" if cn.State >= 1: cn.Close() print("終了しました")
CursorTypes, LockTypes, and CursorLocations ※ MySQL は 以下の三つの組み合わせのみ動作 adUseClient/adOpenStatic adUseServer/adOpenForwardOnly adUseServer/adOpenDynamic ※ ADO でデフォルトは adUseServer エディタのタブ設定 エディタの # コメント色 デフォルトが灰色で見にくいので濃い緑を使用しました
|
【Pythonの最新記事】
- Python : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する
- Python : shift_jis の3列の csv フォーマットのデータを ttk.Treeview に表示する
- Python : ttk.Treeview で表形式を使用して環境変数の一覧表示
- XAMPP + Python( 3.8 ) で WEBアプリの基礎部分構築 : その ( 1 )
- XAMPP + Python( 3.8 ) で WEBアプリの基礎部分構築 : その ( 4 ) : リダイレクトと関数とログ出力
- XAMPP + Python( 3.8 ) で WEBアプリの基礎部分構築 : その ( 3 ) : cgi.FieldStorage() から ディクショナリ
- XAMPP + Python( 3.8 ) でWEBアプリの基礎部分構築 : その ( 2 ) : QUERY_STRING と 画面定義
- Python + MySQL + IFRAME + Bootstrap : 問い合せ WEB アプリテンプレート
- MySQL Connector/Python の使用方法概要のまとめ
- Python3 : 言語的デザインの特徴と要点
- Python ドキュメントに沿った、テキストファイル読み込みの理解
- Python3 でメール送信 ( さくらインターネット )
- Python 3.6 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました
- Eclipse + Python(Pydev) : MySQL Connector/Python でループ処理をしながら更新
- Pleiades Eclipse 4.7 Oxygen で Python を使って MySQL にアクセスする
- Python 3.4 : インストールと最初にする事( Windows )
- Python3.x : URL を読み出す( bytes から string )
- Python3.1 : URLを読み出して、バイナリのままファイル出力する
- Python3.1 : クッキーを保持して二つの URL にアクセスする
- Python3.1 : URLを読み出してファイルに出力