BETA

HaxeでSQLite

投稿日:2019-11-17
最終更新:2019-11-19

開発メモです。

WindowsでSQLiteが標準で簡単に使えて依存するライブラリなしのexeファイルを作成できて比較的最近の言語、という制限でHaxeを選びました。嘘です、趣味です。
Rustを勉強したかったけどSQLiteの導入ができませんでした。誰か教えて下さい。

import sys.db.Sqlite;  

class Main{  
    public static function main(){  
        createUserTable();  
        addUser("USER001", "Honda");  
        addUser("USER002", "Suzuki");  
        addUser("USER003", "Kawasaki");  
        showUsers();  
    }  
    public static function createUserTable(){  
        var dbCon:sys.db.Connection =  Sqlite.open("test.db");  
        var sql = "  
            create table if not exists user(  
                user_id varchar(256),  
                name varchar(256)  
            )  
        ";  
        dbCon.startTransaction();  
        try{  
            dbCon.request(sql);  
        }catch(e:Dynamic){  
            dbCon.rollback();  
            dbCon.close();  
            throw e;  
        }  
        dbCon.commit();  
        dbCon.close();  
    }  
    public static function addUser(id:String, name:String){  
        var dbCon:sys.db.Connection =  Sqlite.open("test.db");  
        var sql = 'insert into user values("$id", "$name");';  
        dbCon.startTransaction();  
        try{  
            dbCon.request(sql);  
        }catch(e:Dynamic){  
            dbCon.rollback();  
            dbCon.close();  
            throw e;  
        }  
        dbCon.commit();  
        dbCon.close();  
    }  
    public static function showUsers(){  
        var dbCon:sys.db.Connection =  Sqlite.open("test.db");  
        var sql = "select * from user;";  

        var resSet = dbCon.request(sql);  
        while(resSet.hasNext()){  
            trace(resSet.getResult(0) + " : " + resSet.getResult(1));  
            resSet.next();  
        }  
        dbCon.close();  
    }  
}  

実行は以下のコマンドで。SQLiteが使えるTargetは限られています。
--interpは使えません。ここではnekoを使います。

haxe -main Main --neko sqlite.n  
neko sqlite.n  

出力

Main.hx:50: USER001 : Honda  
Main.hx:50: USER002 : Suzuki  
Main.hx:50: USER003 : Kawasaki  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

常時省電力モードで情報技術のことを中心にメモしていきます。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!