| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | package sdbimport (	"strings")const (	TypeINTEGER = "INTEGER"	TypeTEXT    = "TEXT"	TypeBLOB    = "BLOB"	TypeREAL    = "REAL"	TypeBOOLEAN = "BOOLEAN"	TypeUINT    = "UINT")// handleColumnType 根据 SQLite 数据类型返回响应的数据类型指针func handleColumnType(columnType string) any {	databaseType := strings.ToUpper(columnType)	switch databaseType {	case TypeINTEGER, "INT", "TINYINT", "SMALLINT", "MEDIUMINT", "BIGINT", "INT2", "INT8":		return new(int64)	case TypeTEXT, "CLOB":		return new(string)	case TypeBLOB:		return new(any)	case TypeREAL, "DOUBLE", "DOUBLE PRECISION", "FLOAT":		return new(float64)	case TypeBOOLEAN, "BOOL":		return new(bool)	case TypeUINT, "UNSIGNED BIG INT":		return new(uint64)	default:		if strings.HasPrefix(databaseType, "CHARACTER") ||			strings.HasPrefix(databaseType, "VARCHAR") ||			strings.HasPrefix(databaseType, "VARYING CHARACTER") ||			strings.HasPrefix(databaseType, "NCHAR") ||			strings.HasPrefix(databaseType, "NATIVE CHARACTER") ||			strings.HasPrefix(databaseType, "NVARCHAR") {			return new(string)		}		return nil	}}func handleScanValue(val any) any {	switch v := val.(type) {	case *int64:		return *v	case *string:		return *v	case *float64:		return *v	case *bool:		return *v	case *uint64:		return *v	default:		return val	}}
 |