IoT+WEBのためのホームサーバ計画の実装編20。PythonでDBアクセス。の修正

あ、ゴメンナサイ。しりませんでした^^;

そうなんですよ。ちょっとまえに、ちゃちゃっと、DBをアクセスするクラスを書いたりしたわけですが、なんか美しくなかったですよねー。

fetchした結果のレコードが、添え字でとってくるってのが、どうにも美しくなかったですよね。

なんか、その昔、ODBC経由でのDBアクセスをWin32のAPI叩いて作ってたころを思い出した次第。20年は前だなー。

ってことで、SQLite3のmoduleは、こんなことをすれば良いらしいです。

row_factoryという妖しい割り込みベクタ的な。

	#---------------------------------------
	#	open
	#---------------------------------------
	def open(self,dbname=None):
		if dbname != None:
			dn = dbname
		else:
			dn = self.dbname
		try:
			self.conn = sqlite3.connect(dn)
			self.conn.row_factory = self.dict_factory
		except Exception as e:
			return	False
		return	True
	#---------------------------------------
	def dict_factory(self,cursor,row):
		d = {}
		for idx, col in enumerate(cursor.description):
			d[col[0]] = row[idx]
		return d
	#---------------------------------------

ところで、、”割り込みベクタ”って最近言わなくないっすか?

しかも、、割り込みっていうほどでも無いっすよね。これ。

単なる凍るバクですし。

雑でした^^;

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です