记录几个神通数据库的问题。

异常

Failed to ping database: unknown URL option: sysdba

GoLang 案例,拿来直接用

package main

import (
	"fmt"
	"github.com/team-ide/go-driver/db_shentong"
	"testing"
)

func TestShenTong(t *testing.T) {

	dsn := db_shentong.GetDSN("SYSDBA", "szoscar55", "192.0.0.116", 2003, "OSRDB")
	db, err := db_shentong.Open(dsn)
	if err != nil {
		panic(err)
	}
	sql := `select 2`
	var count int
	rows, err := db.Query(sql)
	if err != nil {
		panic(err)
	}
	rows.Next()
	err = rows.Scan(&count)
	if err != nil {
		panic(err)
	}
	fmt.Printf("result:%d\n", count)
	if count == 2 {
		fmt.Println("test success")
	} else {
		panic("test fail")
	}
}

注释版

package main

import (
	"fmt"                          // 引入 fmt 包,用于格式化输出
	"github.com/team-ide/go-driver/db_shentong" // 引入神通数据库驱动
	"testing"                      // 引入 testing 包,用于单元测试
)

func TestShenTong(t *testing.T) {
	// 构造神通数据库连接字符串
	// 参数依次为:用户名、密码、主机IP、端口号、数据库名
	dsn := db_shentong.GetDSN("SYSDBA", "szoscar55", "192.0.0.116", 2003, "OSRDB")

	// 使用连接字符串打开数据库连接
	db, err := db_shentong.Open(dsn)
	if err != nil {
		// 如果连接失败,直接抛出异常
		panic(err)
	}

	// 定义要执行的 SQL 语句
	sql := `select 2`

	// 定义一个变量,用于接收查询结果
	var count int

	// 执行查询
	rows, err := db.Query(sql)
	if err != nil {
		// 如果查询失败,抛出异常
		panic(err)
	}

	// 移动到结果集的第一行
	rows.Next()

	// 将查询结果扫描到 count 变量中
	err = rows.Scan(&count)
	if err != nil {
		panic(err)
	}

	// 打印查询结果
	fmt.Printf("result:%d\n", count)

	// 判断查询结果是否符合预期
	if count == 2 {
		fmt.Println("test success") // 查询结果正确,测试成功
	} else {
		panic("test fail") // 查询结果不正确,抛出异常
	}
}

有各种国产数据库的 driver
https://github.com/team-ide/go-driver