pepper  sqliteとの連携


pepperにはsqliteをどうやってインストールするの?
デフォルトでsqliteが入っているの?


%sqlite3 torabotblog.db
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> create table people (rowid integer primary key AUTOINCREMENT, name string, age int(3), phone string);
sqlite> .schema
CREATE TABLE people (rowid integer primary key AUTOINCREMENT, name string, age int(3), phone string);
sqlite> insert into people (name,age,phone) values(‘オウ’ ,31,’08034411098');
sqlite> insert into people (name,age,phone) values('スズキ',50,'0363881556');
sqlite> insert into people (name,age,phone) values('タナカ',40,'0363881555');
sqlite> insert into people (name,age,phone) values('スズキ',50,'0363881556');

sqlite> select * from people;
1|オウ|31|8034411098
2|タナカ|40|363881555
3|スズキ|50|363881556


import os
import sqlite3

class MyClass(GeneratedClass):
…...

def onInput_inputName(self, p):
self.frameManager = ALProxy("ALFrameManager")
db_filename = os.path.join(self.frameManager.getBehaviorPath(self.behaviorId), "../db/torabotblog.db")
self.logger.info(db_filename)
with sqlite3.connect(db_filename) as conn:
c = conn.execute("select name,age,phone from people where name = '" + p + "'")
row = c.fetchone()
if row:
output_data = str(row[2])
self.logger.info("output_data is: "+output_data);
self.outputName(p+"さんの電話は"+output_data+"です")
else:
self.outputName(p+"さんの電話が存在しません。名前をもう一度確認してください")

self.onStopped()
conn.close

→python scriptのboxの入力と出力の名前をinputNameとoutputNameにしなくてはならない。

出力を受けるのはsay boxはだめそうです。 say text boxを利用する。