mirror of
https://github.com/documize/community.git
synced 2025-07-23 15:19:42 +02:00
Update SQL Server driver library
This commit is contained in:
parent
c538fc9eb1
commit
9c36241b58
37 changed files with 9138 additions and 1091 deletions
121
vendor/github.com/denisenkom/go-mssqldb/datetimeoffset_example_test.go
generated
vendored
Normal file
121
vendor/github.com/denisenkom/go-mssqldb/datetimeoffset_example_test.go
generated
vendored
Normal file
|
@ -0,0 +1,121 @@
|
|||
// +build go1.10
|
||||
|
||||
package mssql_test
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"cloud.google.com/go/civil"
|
||||
"github.com/denisenkom/go-mssqldb"
|
||||
)
|
||||
|
||||
// This example shows how to insert and retrieve date and time types data
|
||||
func ExampleDateTimeOffset() {
|
||||
flag.Parse()
|
||||
|
||||
if *debug {
|
||||
fmt.Printf(" password:%s\n", *password)
|
||||
fmt.Printf(" port:%d\n", *port)
|
||||
fmt.Printf(" server:%s\n", *server)
|
||||
fmt.Printf(" user:%s\n", *user)
|
||||
}
|
||||
|
||||
connString := makeConnURL().String()
|
||||
if *debug {
|
||||
fmt.Printf(" connString:%s\n", connString)
|
||||
}
|
||||
|
||||
db, err := sql.Open("sqlserver", connString)
|
||||
if err != nil {
|
||||
log.Fatal("Open connection failed:", err.Error())
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
insertDateTime(db)
|
||||
retrieveDateTime(db)
|
||||
retrieveDateTimeOutParam(db)
|
||||
}
|
||||
|
||||
func insertDateTime(db *sql.DB) {
|
||||
_, err := db.Exec("CREATE TABLE datetimeTable (timeCol TIME, dateCol DATE, smalldatetimeCol SMALLDATETIME, datetimeCol DATETIME, datetime2Col DATETIME2, datetimeoffsetCol DATETIMEOFFSET)")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
stmt, err := db.Prepare("INSERT INTO datetimeTable VALUES(@p1, @p2, @p3, @p4, @p5, @p6)")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
tin, err := time.Parse(time.RFC3339, "2006-01-02T22:04:05.787-07:00")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
var timeCol civil.Time = civil.TimeOf(tin)
|
||||
var dateCol civil.Date = civil.DateOf(tin)
|
||||
var smalldatetimeCol string = "2006-01-02 22:04:00"
|
||||
var datetimeCol mssql.DateTime1 = mssql.DateTime1(tin)
|
||||
var datetime2Col civil.DateTime = civil.DateTimeOf(tin)
|
||||
var datetimeoffsetCol mssql.DateTimeOffset = mssql.DateTimeOffset(tin)
|
||||
_, err = stmt.Exec(timeCol, dateCol, smalldatetimeCol, datetimeCol, datetime2Col, datetimeoffsetCol)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func retrieveDateTime(db *sql.DB) {
|
||||
rows, err := db.Query("SELECT timeCol, dateCol, smalldatetimeCol, datetimeCol, datetime2Col, datetimeoffsetCol FROM datetimeTable")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer rows.Close()
|
||||
var c1, c2, c3, c4, c5, c6 time.Time
|
||||
for rows.Next() {
|
||||
err = rows.Scan(&c1, &c2, &c3, &c4, &c5, &c6)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf("c1: %+v; c2: %+v; c3: %+v; c4: %+v; c5: %+v; c6: %+v;\n", c1, c2, c3, c4, c5, c6)
|
||||
}
|
||||
}
|
||||
|
||||
func retrieveDateTimeOutParam(db *sql.DB) {
|
||||
CreateProcSql := `
|
||||
CREATE PROCEDURE OutDatetimeProc
|
||||
@timeOutParam TIME OUTPUT,
|
||||
@dateOutParam DATE OUTPUT,
|
||||
@smalldatetimeOutParam SMALLDATETIME OUTPUT,
|
||||
@datetimeOutParam DATETIME OUTPUT,
|
||||
@datetime2OutParam DATETIME2 OUTPUT,
|
||||
@datetimeoffsetOutParam DATETIMEOFFSET OUTPUT
|
||||
AS
|
||||
SET NOCOUNT ON
|
||||
SET @timeOutParam = '22:04:05.7870015'
|
||||
SET @dateOutParam = '2006-01-02'
|
||||
SET @smalldatetimeOutParam = '2006-01-02 22:04:00'
|
||||
SET @datetimeOutParam = '2006-01-02 22:04:05.787'
|
||||
SET @datetime2OutParam = '2006-01-02 22:04:05.7870015'
|
||||
SET @datetimeoffsetOutParam = '2006-01-02 22:04:05.7870015 -07:00'`
|
||||
_, err := db.Exec(CreateProcSql)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
var (
|
||||
timeOutParam, datetime2OutParam, datetimeoffsetOutParam mssql.DateTimeOffset
|
||||
dateOutParam, datetimeOutParam mssql.DateTime1
|
||||
smalldatetimeOutParam string
|
||||
)
|
||||
_, err = db.Exec("OutDatetimeProc",
|
||||
sql.Named("timeOutParam", sql.Out{Dest: &timeOutParam}),
|
||||
sql.Named("dateOutParam", sql.Out{Dest: &dateOutParam}),
|
||||
sql.Named("smalldatetimeOutParam", sql.Out{Dest: &smalldatetimeOutParam}),
|
||||
sql.Named("datetimeOutParam", sql.Out{Dest: &datetimeOutParam}),
|
||||
sql.Named("datetime2OutParam", sql.Out{Dest: &datetime2OutParam}),
|
||||
sql.Named("datetimeoffsetOutParam", sql.Out{Dest: &datetimeoffsetOutParam}))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf("timeOutParam: %+v; dateOutParam: %+v; smalldatetimeOutParam: %s; datetimeOutParam: %+v; datetime2OutParam: %+v; datetimeoffsetOutParam: %+v;\n", time.Time(timeOutParam), time.Time(dateOutParam), smalldatetimeOutParam, time.Time(datetimeOutParam), time.Time(datetime2OutParam), time.Time(datetimeoffsetOutParam))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue