fix nil bug for query11

add query1s query1a
This commit is contained in:
Star 2024-12-15 19:22:13 +08:00
parent 183beb1286
commit 7eee72b053
3 changed files with 41 additions and 12 deletions

24
db.go
View File

@ -84,6 +84,28 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
panic(vm.NewGoError(r.Error))
}
},
"query1a": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
args, conn, tx, _ := initDBArgs(argsIn, vm, 1)
var r *db.QueryResult
if tx != nil {
r = tx.Query(args.Str(0), args.Array(1)...)
} else {
r = conn.Query(args.Str(0), args.Array(1)...)
}
if r.Error == nil {
a := r.SliceResults()
if len(a) > 0 && len(a[0]) > 0 {
list := make([]any, len(a))
for i := 0; i < len(a); i++ {
list[i] = a[i][0]
}
return vm.ToValue(makeQueryResult(r, list))
}
return vm.ToValue(makeQueryResult(r, nil))
} else {
panic(vm.NewGoError(r.Error))
}
},
"query11": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
args, conn, tx, _ := initDBArgs(argsIn, vm, 1)
var r *db.QueryResult
@ -97,7 +119,7 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
if len(a) > 0 && len(a[0]) > 0 {
return vm.ToValue(makeQueryResult(r, a[0][0]))
}
return vm.ToValue(nil)
return vm.ToValue(makeQueryResult(r, nil))
} else {
panic(vm.NewGoError(r.Error))
}

21
db.ts
View File

@ -20,7 +20,7 @@ export default {
function get(dbName: string): DB { return null as any }
function setDefault(dbName: string): void { }
function make(descFileOrContent: string): Array<Object> { return null as any }
function make(descFileOrContent: string): Object[] { return null as any }
function makeER(outputFile: string, descFileOrContent: string): void { }
function query(sql: string, ...args: any): QueryResult { return null as any }
function query1(sql: string, ...args: any): QueryResult1 { return null as any }
@ -35,7 +35,7 @@ function begin(): Tx { return null as any }
function makeInKeys(numKeys: number): string { return '' }
interface DB {
make(descFileOrContent: string): Array<Object>
make(descFileOrContent: string): Object[]
query(sql: string, ...args: any): QueryResult
query1(sql: string, ...args: any): QueryResult1
query11(sql: string, ...args: any): QueryResult11
@ -52,6 +52,7 @@ interface DB {
interface Tx {
query(sql: string, ...args: any): QueryResult
query1(sql: string, ...args: any): QueryResult1
query1a(sql: string, ...args: any): QueryResult1A
query11(sql: string, ...args: any): QueryResult11
exec(sql: string, ...args: any): ExecResult
insert(table: string, data: Object): ExecResult
@ -64,25 +65,31 @@ interface Tx {
interface QueryResult {
sql: string
args: Array<any>
result: Array<Object>
args: any[]
result: Object[]
}
interface QueryResult1 {
sql: string
args: Array<any>
args: any[]
result: Object
}
interface QueryResult1A {
sql: string
args: any[]
result: any[]
}
interface QueryResult11 {
sql: string
args: Array<any>
args: any[]
result: any
}
interface ExecResult {
sql: string
args: Array<any>
args: any[]
id: number
changes: number
}

8
go.mod
View File

@ -1,11 +1,11 @@
module apigo.cc/gojs/db
go 1.21
go 1.22.0
toolchain go1.22.5
require (
apigo.cc/gojs v0.0.8
apigo.cc/gojs v0.0.9
github.com/ssgo/dao v0.1.5
github.com/ssgo/db v1.7.11
github.com/ssgo/log v1.7.7
@ -30,11 +30,11 @@ require (
github.com/ssgo/config v1.7.9 // indirect
github.com/ssgo/standard v1.7.7 // indirect
github.com/ssgo/tool v0.4.27 // indirect
golang.org/x/exp v0.0.0-20231108232855-2478ac86f678 // indirect
golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect
modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9 // indirect
modernc.org/libc v1.61.4 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.8.0 // indirect