param.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package xugu
  2. import "unsafe"
  3. // 定义 HANDLE_TYPE 枚举
  4. type HANDLE_TYPE int
  5. const (
  6. HT_UNKNOW HANDLE_TYPE = iota // 0 未知
  7. HT_CONN // 1 连接
  8. HT_PARAMS // 2 参数
  9. HT_ERR // 错误
  10. HT_RS // 结果
  11. HT_LOB // 大对象
  12. HT_SMART_RS // 智能结果集
  13. )
  14. // 定义 XGCSParam 结构体
  15. type XGCSParam struct {
  16. Type HANDLE_TYPE // 句柄类型
  17. ParamNum uint32 // 单行参数数量
  18. PResourceNum int // 参数名称资源数量,步长128
  19. ParamArraySize int // 参数数组长度(数组大小)
  20. Valuep ***unsafe.Pointer // 实际参数指针数组,指向参数地址
  21. VType []uint32 // 参数类型:数组,参数数量
  22. VParamSize []uint32 // 参数缓冲区长度,参数数量
  23. VDbType *int // 参考数据库数据类型,参数数量
  24. VActuallenp **int // 参数数据实际大小数组,[参数数组大小][参数数量]
  25. VParamName [][]byte // 参数名称
  26. VParamNo []uint32 // 参数序列数组
  27. VInOut *int // 输入输出类型
  28. ErrStr *byte // 错误字符串
  29. MemType int // 内存使用模式(0:引用,1:驱动程序分配)
  30. ImpExpType int // 0 隐式创建,1 显式创建,2 由服务器提供的准备语句获取
  31. }
  32. const (
  33. XG_ERROR = -1
  34. XG_NET_ERROR = -4
  35. XG_INVALID_ARG = -3
  36. XG_SOCKET_ERROR = -8
  37. XG_LOGIN_ERROR = -9
  38. )