Hatena::Grouprubyist

たばさの RSSフィード

05/07(木) 2009

dumpしてみる

| dumpしてみる - たばさの を含むブックマーク はてなブックマーク - dumpしてみる - たばさの

ダンプを保存

sqlite3 test.db .dump > sql_backup.txt

できた sql_backup.txt

BEGIN TRANSACTION;
CREATE TABLE moz_bookmarks (id INTEGER PRIMARY KEY,type INTEGER, fk INTEGER DEFAULT NULL, parent INTEGER, position INTEGER, title LONGVARCHAR, keyword_id INTEGER, folder_type TEXT, dateAdded INTEGER, lastModified INTEGER);
INSERT INTO "moz_bookmarks" VALUES(1,2,NULL,0,0,'',NULL,'',1205363189421875,1238067049203125);
INSERT INTO "moz_bookmarks" VALUES(2,2,NULL,1,0,'ブックマークメニュー',NULL,'',1205363189437500,1212794635234375);
...(略)
COMMIT;

ダンプから作成してみる

sqlite3 recovery.db < sql_backup.txt

ロックしてあると使えないな。




>sqlite3 -help
Usage: d:\download\sqlite-3_5_7\sqlite3 [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:
   -init filename       read/process named file
   -echo                print commands before execution
   -[no]header          turn headers on or off
   -bail                stop after hitting an error
   -interactive         force interactive I/O
   -batch               force batch I/O
   -column              set output mode to 'column'
   -csv                 set output mode to 'csv'
   -html                set output mode to HTML
   -line                set output mode to 'line'
   -list                set output mode to 'list'
   -separator 'x'       set output field separator (|)
   -nullvalue 'text'    set text string for NULL values
   -version             show SQLite version

>
トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20090507

06/13(金) 2008

練習

| 練習 - たばさの を含むブックマーク はてなブックマーク - 練習 - たばさの

dateはtextとして,古いほうから

select * from tbl_test where date > "2008-06-12 23:" order by date asc;

and

 >sqlite3 test.db
SQLite version 3.5.7
Enter ".help" for instructions
sqlite> .tables
hatedanew  prog       tbl_test
sqlite> .header on
sqlite> .mode column
sqlite> select ">>",id,date,id from tbl_test where date > "2008-06-12 23:" and id like "hog%" order by date asc;
">>"        id          date                 id
----------  ----------  -------------------  ----------
>>          hoge123456  2008-06-12 23:00:44  hoge123456
>>          hoghug      2008-06-13 01:09:31  hoghug

html mode


sqlite> .mode html
sqlite> select ">>",id,date,id from tbl_test where date > "2008-06-12 23:" and id like "hog%" order by date asc;
<TR><TH>">>"</TH><TH>id</TH><TH>date</TH><TH>id</TH></TR>
<TR><TD>>></TD>
<TD>hoge123456</TD>
<TD>2008-06-12 23:00:44</TD>
<TD>hoge123456</TD>
</TR>
<TR><TD>>></TD>
<TD>hoghug</TD>
<TD>2008-06-13 01:09:31</TD>
<TD>hoghug</TD>
</TR>
sqlite>

慣れると英語の構文に近いのでやりやすい。

あ、sqlでハイライトできた。

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080613

03/22(土) 2008

sqliteをsourceからコンパイル

| sqliteをsourceからコンパイル - たばさの を含むブックマーク はてなブックマーク - sqliteをsourceからコンパイル - たばさの

f:id:hatecha:20080322073547p:image

officialにあるamalgamationtというのが全ファイルをひとつにしてある。コンパイラがどうとかあるからそういう理由か。しかし長い。

borland c++5.51でのコンパイルで警告多数で中止される。bcc32無引数での表示は簡潔すぎてわからない。helpフォルダにあるヘルプ*1-wの項を参考にエラー番号を

bcc32 -w-8008 -w-8004 sqlite3.c

のように除外すると通った、しかしmainがないという。もういちどdownloadページから下のほうにあるものがそれっぽいのでダウンしてmainを検索するとshell.cにあった。shellですか。確かに。リンクすればよいのだろうけど苦手なのでsqlite3.cの最後にコピペ。通った。


コメントが多い。ついでなのでコメントサイズを見てみる。一貫しているので探しやすい。

# offcomment.rb
m=co=le=ole=0
while gets
  len=$_.size
  le+=len
  co+=1
  (m+=1;ole+=len ;print "\r",$_[0..15].chomp) if $_ =~ /^[ \t]*(\*\*|\/\*|\*\/)/
end
puts
puts "line : #{co}\nsrc  : #{co-m} comment #{m} (#{m*100/co}%)"
puts "*"*((co-m)*50/co)+"_"*(m*50/co)
puts "size : #{le}\nsrc  : #{le-ole} comment #{ole} (#{ole*100/le}%)"
puts "*"*((le-ole)*50/le)+"_"*(ole*50/le)

line : 86635
src  : 57859 comment 28776 (33%)
*********************************________________
size : 2922211
src  : 1708531 comment 1213680 (41%)
*****************************____________________

ワンライナー

| ワンライナー - たばさの を含むブックマーク はてなブックマーク - ワンライナー - たばさの

>sqlite3 zipdata.db "select * from zipdata where new_zip like '24%';"|ruby -ne"require'nkf';puts NKF.nkf('-s',$_)"

windowsなのでダブルクォート。requireはここでいいのか。

(追記: -r nkf を使う)


>sqlite3 zipdata.db "select * from zipdata where new_zip like '24%'"|iconv -f utf-8

これでもいいようだ。iconvっていつ入れたんだかな。



参考

http://www.sqlite.org/sqlite.html

http://www.twcu.ac.jp/~osada/tips/by_iconv.html

*1:デフォルトでは C:\borland\bcc55\Help\bcb5tool.hlp

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20080322
カレンダー
<< 2019/09 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
archive Error : RSSが取得できませんでした。