Firebird RDBMS https://firebirdsql.org SQL driver for Go
- Firebird 2.5 or higher
- Golang 1.20 or higher
package main
import (
"fmt"
"database/sql"
_ "github.com/nakagami/firebirdsql"
)
func main() {
var n int
conn, _ := sql.Open("firebirdsql", "user:password@servername/foo/bar.fdb")
defer conn.Close()
conn.QueryRow("SELECT Count(*) FROM rdb$relations").Scan(&n)
fmt.Println("Relations count=", n)
}
See also driver_test.go
package main
import (
"fmt"
"github.com/nakagami/firebirdsql"
)
func main() {
dsn := "user:password@servername/foo/bar.fdb"
events := []string{"my_event", "order_created"}
fbEvent, _ := firebirdsql.NewFBEvent(dsn)
defer fbEvent.Close()
sbr, _ := fbEvent.Subscribe(events, func(event firebirdsql.Event) { //or use SubscribeChan
fmt.Printf("event: %s, count: %d, id: %d, remote id:%d \n", event.Name, event.Count, event.ID, event.RemoteID)
})
defer sbr.Unsubscribe()
go func() {
fbEvent.PostEvent(events[0])
fbEvent.PostEvent(events[1])
}()
<- make(chan struct{}) //wait
}
See also _example
user:password@servername[:port_number]/database_name_or_file[?params1=value1[¶m2=value2]...]
- user: login user
- password: login password
- servername: Firebird server's host name or IP address.
- port_number: Port number. default value is 3050.
- database_name_or_file: Database path (or alias name).
param1, param2... are
Name | Description | Default | Note |
---|---|---|---|
auth_plugin_name | Authentication plugin name. | Srp256 | Srp256/Srp/Legacy_Auth are available. |
column_name_to_lower | Force column name to lower | false | For "github.com/jmoiron/sqlx" |
role | Role name | ||
timezone | Time Zone name | For Firebird 4.0+ | |
wire_crypt | Enable wire data encryption or not. | true | For Firebird 3.0+ |
charset | Firebird Charecter Set |