S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
08« 2018/09 »10

Profile

cephalos

Author:cephalos


I work on 3DCG by a hobby.
The aim is made with an animated cartoon without the sense of incongruity.


Softimage 7.01
SAI 1.1.0
PhotoShop CS3
AfterEffect CS3
Flash CS3
Visual C++ 2008 EE
XNA Game Studio 3.0


Twitter

Latest Trackbacks

Blogparts

Blog friend list

Search Form

SIとMySQL連携(2)

python設定
SIとMySQL連携
まぁ、実際はpythonとMySQL接続ですがw

データベースに登録されたデータを取り込んで見ますYO。
■データベース定義は下図の通り。
table.jpg

■実行結果
ppg.jpg

■まとめ
結構、手間かかる。特にファイル分割しちゃうと。
外部ファイルにしちゃうと、SIがキャッシュしちゃってるせいか、修正したところが反映されなかったり。
そして、あまり意味がないwwwww

ソースコードは Read Moreから。
tweets tweets |はてなブックマーク - SIとMySQL連携(2)
■ソースコード



import sys
# Path追加
sys.path.append("D:\\user_projects\\xsi")

# データベース接続用クラス
from content import db
from win32com.client import constants as c

app = Application

class scene:
app = None
log = None
b = None
layout = None

# コンストラクタ
def __init__(self, ap=None, dbName=""):
self.app = ap
self.log = ap.logmessage
self.b = db(self.log, dbName)
self.pset = self.app.ActiveSceneRoot.AddProperty("CustomProperty", False, "Test PPG")
# デストラクタ
def __del__(self):
if self.pset != None :
self.app.DeleteObj(self.pset)
del self.pset

# PPG
def setLayout(self):
self.b.execute("SELECT * FROM item")
self.rset = self.b.fetch()

a = []
for e in self.rset:
p = "%s" % e[1] + "%d" % e[0]
self.pset.AddParameter3(p, c.siString, "", None, None, True)
self.log(p)


self.layout = self.pset.PPGLayout
for e in self.rset:
p = "%s" % e[1] + "%d" % e[0]
self.layout.AddItem(p)

self.Language = "Python"

# PPG表示
def show(self):
try:
self.app.InspectObj(self.pset, None, None, c.siModal)
except Exception:
pass

self.app.DeleteObj(self.pset)


scn = scene(app, "hoge")
scn.setLayout()
scn.show()



■ソースコード(common.py)


# -*- coding: utf-8 -*-
import MySQLdb
import sys

class db:
con = None
cur = None
rs = None

# コンストラクタ
def __init__(self, req, dbName):
try:
self.con = MySQLdb.connect(db=dbName, host="localhost", port=3306, user="user_name", passwd="user_password")
# カーソルの作成
self.cur = self.con.cursor()
# 結果の表示
#self.rs = cur.fetchall()
except Exception:
req("Failed Connected.")
sys.exit()

# デストラクタ
def __del__():
req("destruct")
self.release()

def count(self):
return self.cur.rowcount

def execute(self, sql):
self.cur.execute(sql)

def fetch(self):
return self.cur.fetchall()

def release(self):
# カーソルを閉じる
self.cur.close()
# 接続を閉じる
self.con.close()

<<SIでTwitter | HOME | SIとMySQL連携>>

Comment

Comment Form


to secret

Trackback url to this Entry

Trackback to this Entry

| HOME |