2015年3月14日土曜日

SqliteからFirebirdへ移行

SqliteからFirebirdへ移行した時の話です。

その1.予約語が違う
テーブルをFireBird上に作ると次のカラム名でエラーとなりました

「date」 「any」 「name」

SqliteならばOkなのでどうも予約語が違う様です。



その2.Sqliteは文字列長のチェックをしていない

  varchar(32)

と宣言したカラムにデータを書こうとしたらSqliteはOk、Firebirdはエラーとなりました。
調べたら確かに書いた文字列長が長すぎました。とうもSqliteは長さをチェックしていない様です。


その3.接続オブジェクトが違う
変数conはコネクションオブジェです

Sqliteなら下記でもOk、FirebirdはNgでした

cur = con.execute("select * from user_table")
rec = cur.fetchall()

下記の様にしないと駄目でした
cur=con.cursor()
cur.execute("select * from user_table");
rec = cur.fetchall()

----------

最近FirebirdとPythonの投稿が続いていますが。

実は今趣味で作っているセキュリティソフトのデータベースをSqliteからFirebirdに変更しようとしているからです。

Sqliteを選んだのはPython標準だし、そもそも端末で異常を検知した時の情報を蓄える為のものなので、大量に登録は無いはずなのですが。

でもヒートランテストを行うと5000件ぐらい登録されるので、やはりSqliteだと遅いです。

0 件のコメント:

コメントを投稿