diff go/extsql.go @ 12:240752cbe11b

db-upload.(by go)
author pyon@macmini
date Tue, 13 Nov 2018 21:11:20 +0900
parents
children f5ffc34f045a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/go/extsql.go	Tue Nov 13 21:11:20 2018 +0900
@@ -0,0 +1,83 @@
+/*
+ extsql.go   : manipulate sqlite3.
+ Version    : 0.1
+ Last Change: 2018-11-13 火 15:22:56.
+
+ install to: rsearcher_root/
+*/
+package main
+
+import (
+	"fmt"
+	"flag"
+	"log"
+	"os"
+	"os/exec"
+	"strings"
+)
+
+var version string
+var sqlite  string
+
+func init() {
+	version = "0.1"	// first version
+	sqlite = "sqlite3.exe"
+}
+
+func main() {
+    var printver = flag.Bool( "v", false, "print version" )      // print version
+	flag.Parse()
+
+	// print version
+	if *printver {
+		fmt.Println( "mngdb [ ver", version, "]" )
+		os.Exit( 0 )
+	}
+
+	if flag.NArg() != 3 {
+		fmt.Fprint( os.Stderr, "argument error.\n" )
+		fmt.Fprint( os.Stderr, "> extsql.exe hhs.db ccn.db 20160401\n" )
+		os.Exit( 1 )
+	}
+	hhs := flag.Args()[0]
+	ccn := flag.Args()[1]
+	ymd := flag.Args()[2]
+
+	// make idnex.db
+	sql := "select hhsno, date from path where date >= " + ymd
+	ccndb, err := exec.Command( sqlite, ccn, sql ).Output()
+	if err != nil {
+		log.Fatal( err )
+	}
+
+	f, _ := os.Create( "index.db" )
+	defer f.Close()
+
+	m := make( map[string]bool )
+	for _, cols := range strings.Split( string( ccndb ), "\n" ) {
+		col := strings.Split( cols, "|" )
+		if len( col ) == 2 {
+			buf := fmt.Sprintf( "%s:%s\n", col[0], col[1] )
+			f.WriteString( buf )
+			m[ col[0] ] = true
+		}
+	}
+
+	// make hhs.csv
+	sql = "select * from hhs_master"
+	hhsdb, err := exec.Command( sqlite, hhs, sql ).Output()
+	if err != nil {
+		log.Fatal( err )
+	}
+
+	f, _ = os.Create( "hhs.csv" )
+	for _, cols := range strings.Split( string( hhsdb ), "\n" ) {
+		col := strings.Split( cols, "|" )
+		if _, ok := m[ col[0] ]; ok == true {
+			buf := strings.Replace( cols, "|", ",", -1 ) + "\n"
+			f.WriteString( buf )
+		}
+	}
+	f.Close()
+}
+