github.com/mattn/go-adodb@v0.0.1/_example/csv.go (about)

     1  package main
     2  
     3  import (
     4  	"database/sql"
     5  	"fmt"
     6  	"os"
     7  
     8  	_ "github.com/mattn/go-adodb"
     9  )
    10  
    11  func main() {
    12  	os.Remove("example.csv")
    13  
    14  	db, err := sql.Open("adodb", `Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended Properties="Text;HDR=NO;FMT=Delimited"`)
    15  	if err != nil {
    16  		fmt.Println(err)
    17  		return
    18  	}
    19  	defer db.Close()
    20  
    21  	_, err = db.Exec("create table example.csv(f1 text, f2 text, f3 text)")
    22  	if err != nil {
    23  		fmt.Println(err)
    24  		return
    25  	}
    26  
    27  	tx, err := db.Begin()
    28  	if err != nil {
    29  		fmt.Println(err)
    30  		return
    31  	}
    32  	stmt, err := tx.Prepare("insert into example.csv(F1, F2, F3) values(?, ?, ?)")
    33  	if err != nil {
    34  		fmt.Println(err)
    35  		return
    36  	}
    37  
    38  	for i := 0; i < 100; i++ {
    39  		_, err = stmt.Exec(
    40  			i,
    41  			fmt.Sprintf("HelloWorld%03d", i),
    42  			fmt.Sprintf("こんにちわ世界%03d", i))
    43  		if err != nil {
    44  			fmt.Println(err)
    45  			return
    46  		}
    47  	}
    48  	tx.Commit()
    49  
    50  	rows, err := db.Query("select F1, F2, F3 from example.csv")
    51  	if err != nil {
    52  		fmt.Println(err)
    53  		return
    54  	}
    55  	defer rows.Close()
    56  
    57  	for rows.Next() {
    58  		var f1, f2, f3 string
    59  		rows.Scan(&f1, &f2, &f3)
    60  		fmt.Println(f1, f2, f3)
    61  	}
    62  }