2014年9月27日土曜日

SQLite でテーブルに複数レコードを追加するクエリ

Values に追加するレコード情報をカンマ区切りで複数記述することで OK です。

INSERT INTO BuyList
(Category, ItemName, ShopName, Date, Cost)
VALUES
('Category1', 'Item1', 'Shop1', '2014-09-15', 1980),
('Category2', 'Item2', 'Shop2', '2014-09-28', 570)

参考ページ
Is it possible to insert multiple rows at a time in an SQLite database?
http://stackoverflow.com/questions/1609637/is-it-possible-to-insert-multiple-rows-at-a-time-in-an-sqlite-database

jQuery trigger メソッドの使い道

jQuery には trigger メソッドを利用することで、開発者がイベントを動的に発生させることができます。
この trigger メソッドは、主にユニットテストに利用することができます。


Testing User Actions
http://qunitjs.com/cookbook/#testing-user-actions

あくまでもテスト目的で利用されるものであり、開発者がビジネスロジックを実行するために常用するものではないようです。

2014年9月23日火曜日

localStorage への JSON データ保存と復元

cookie 以外でブラウザ側にデータを保存することの出来る localStorage があります。
ここでは簡単に localStorage へ JSON データを保存し、復元する例を紹介します。
JSON データは文字列データではないため、JSON.stringify() メソッドでシリアライズし、
JSON.parse() メソッドでデシリアライズしています。

// JSON データ
var friend = { ID : 1, Name : "Kai" };

// localStorage に JSON データを保存
// JSON.stringify を用いて JSON をシリアライズ(文字列化)
localStorage.setItem('kai', JSON.stringify(friend));

// 確認:変数 friend は JSON データ
console.log("json data : " + friend);

// 確認:localStorage には文字列として保存されている
console.log("localStorage data : " + localStorage.getItem("kai"));

// JSON.parse を用いてシリアライズされている JSON をデシリアライズ
var friendRetreived = JSON.parse(localStorage.getItem("kai"));

// JSON データが復元されている
console.log("deserialized data : " + friendRetreived);

2014年9月22日月曜日

JavaScript と jQuery で cookie を生成する

ブラウザの cookie を生成する方法です。

1.JavaScript の場合
document.cookie = "key1=value1";


jQuery ではより簡潔に cookie を操作することができるプラグインが用意されています。

2.jQuery cookie plug-in の場合
// 戻り値として cookie を取得することができます。
var cookies = $.cookie("name", "Tim");

詳しくは下記 GitHub をご覧ください。

carhartl/jquery-cookie
https://github.com/carhartl/jquery-cookie

2014年9月7日日曜日

SQLite 今月の全件データを取得する SQL 文

今月の合計を取得したくて調べました。

BuyList テーブルの Date 列データが今月のリストを表示する SQL 文です。

'今月の全件データを表示
select * from BuyList where Date between date ('now', 'start of month') and date ('now', 'start of month', '+1 month', '-1 day')

'今月の集計データは SUM 関数を組み合わせて取得
select SUM(Date) from BuyList where Date between date ('now', 'start of month') and date ('now', 'start of month', '+1 month', '-1 day')

参考ページ
the sqlite common sql statement
http://www.databaseskill.com/1046790/

2014年9月1日月曜日

JavaScript Date(日付) データを yyyy/MM/dd 形式にフォーマットする


JavaScript の Date 型データはデフォルトでは下記の形式生成されます。

Mon Sep 01 2014 21:42:03 GMT+0900

これを yyyy/MM/dd の形式にフォーマットする場合、下記のように実装することができます。JavaScript の月は 0 からスタートしますので、1 を追加します。

var date = new Date();
var formattedDate = 
    date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();

追記:
コメント欄にてご指摘いただいているように、上の実装ではゼロ埋めがなされません。ゼロを補完して必要な下二桁のみを取るように変更します。

var date = new Date();
formattedDate = [
    date.getFullYear(),
    ('0' + (date.getMonth() + 1)).slice(-2),
    ('0' + date.getDate()).slice(-2)
].join('/');

console.log(formattedDate);

動作サンプルのダウンロードはこちらから
http://kai.raindrop.jp/javascript/format-date/