Mercurial > mercurial > hgweb_searcher03.cgi
comparison src/db.cpp @ 13:bbd65edf71d4
Implement Hhs DB update dialog.
| author | pyon@macmini |
|---|---|
| date | Sat, 24 May 2014 10:25:13 +0900 |
| parents | dfcf8c973219 |
| children | a2ad87cad48b |
comparison
equal
deleted
inserted
replaced
| 12:52958cd4a073 | 13:bbd65edf71d4 |
|---|---|
| 1 // Filename : db.cpp | 1 // Filename : db.cpp |
| 2 // Last Change: 02-May-2014. | 2 // Last Change: 23-May-2014. |
| 3 // | 3 // |
| 4 | 4 |
| 5 #include <wx/tokenzr.h> | |
| 5 #include "db.h" | 6 #include "db.h" |
| 6 #include "wx/wxsqlite3.h" | 7 #include "wx/wxsqlite3.h" |
| 7 | 8 |
| 8 //********** HHS-DB **********// | 9 //********** HHS-DB **********// |
| 10 /* 被保険者台帳を更新 */ | |
| 11 void UpdateHhs( wxArrayString info ) | |
| 12 { | |
| 13 long n = info.GetCount(); | |
| 14 | |
| 15 wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), n, NULL, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | |
| 16 pd.SetSize( wxSize( 320, 140 ) ); | |
| 17 | |
| 18 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("hhs.db"); | |
| 19 wxRemoveFile( gszFile ); | |
| 20 | |
| 21 wxSQLite3Database hhsdb; | |
| 22 hhsdb.Open( gszFile ); | |
| 23 hhsdb.Begin(); | |
| 24 | |
| 25 wxString sql = wxT( "PRAGMA foregin_keys=OFF" ); | |
| 26 wxSQLite3Statement stmt = hhsdb.PrepareStatement( sql ); | |
| 27 wxSQLite3ResultSet q = stmt.ExecuteQuery(); | |
| 28 | |
| 29 sql = wxT( "CREATE TABLE 'hhs_master' ( hhsno text PRIMARY KEY, birth text, name text, kana text, addr text, sex text )" ); | |
| 30 stmt = hhsdb.PrepareStatement( sql ); | |
| 31 q = stmt.ExecuteQuery(); | |
| 32 | |
| 33 wxString hhsno, birth, name, kana, addr, sex; | |
| 34 for ( long i = 0; i < n; i++ ) { | |
| 35 | |
| 36 info[i].Replace( wxT("\""), wxEmptyString, true ); | |
| 37 | |
| 38 wxStringTokenizer token( info[i], wxT(",") ); | |
| 39 hhsno = token.GetNextToken(); | |
| 40 birth = token.GetNextToken(); | |
| 41 name = token.GetNextToken(); | |
| 42 kana = token.GetNextToken(); | |
| 43 addr = token.GetNextToken(); | |
| 44 sex = token.GetNextToken(); | |
| 45 | |
| 46 stmt = hhsdb.PrepareStatement( "INSERT INTO hhs_master VALUES( ?, ?, ?, ?, ?, ? );" ); | |
| 47 stmt.Bind( 1, hhsno ); | |
| 48 stmt.Bind( 2, birth ); | |
| 49 stmt.Bind( 3, name ); | |
| 50 stmt.Bind( 4, kana ); | |
| 51 stmt.Bind( 5, addr ); | |
| 52 stmt.Bind( 6, sex ); | |
| 53 stmt.ExecuteQuery(); | |
| 54 stmt.Finalize(); | |
| 55 | |
| 56 if ( i % 1000 == 0 ) { | |
| 57 pd.Update( i, wxString::Format( wxT("%d / %d done."), i, n ) ); | |
| 58 } | |
| 59 } | |
| 60 | |
| 61 hhsdb.Commit(); | |
| 62 hhsdb.Close(); | |
| 63 } | |
| 64 | |
| 9 /* 被保番で被保険者情報を取得 */ | 65 /* 被保番で被保険者情報を取得 */ |
| 10 wxString GetHhsInfoByHhsNo( wxString hhsno ) | 66 wxString GetHhsInfoByHhsNo( wxString hhsno ) |
| 11 { | 67 { |
| 12 wxString name, addr; | 68 wxString name, addr; |
| 13 | 69 |
