1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package xugu
- import (
- "context"
- "errors"
- "fmt"
- )
- func xgSockOpenConn(ctx context.Context, pConn *xuguConn) error {
- fmt.Println(" ---xgSockOpenConn(ctx context.Context, pConn *xuguConn)")
- //发送
- //fmt.Printf("login database = '%s' user = '%s' password = '%s' version='201' ", pConn.Database, pConn.User, pConn.Password)
- // message := "login database = 'SYSTEM' user = 'SYSDBA' password = 'SYSDBA' version='201' "
- dsnMessage := generateLoginString(pConn.dsnConfig)
- _, err := pConn.conn.Write([]byte(dsnMessage))
- if err != nil {
- return errors.New("conn 发送数据库连接失败:")
- }
- fmt.Println("数据已发送:", dsnMessage)
- buffer := make([]byte, 1024)
- n, err := pConn.conn.Read(buffer)
- if err != nil {
- return errors.New("conn 接收数据库连接相应失败:")
- }
- fmt.Println("读取数据库服务返回:", string(buffer[:n]))
- //SockSendCommand0(pConn, "set schema SYSTEM")
- return nil
- }
- func xgSockPrepare(pConn *xuguConn, sql string, prepareName *string) (int, error) {
- fmt.Println(">>>>>xgSockPrepare")
- if "" == *prepareName {
- ret := 0
- //p_params := &conn.params
- if pConn.havePrepare != 0 {
- ret = xgCmdUnprepare(pConn, pConn.prepareName)
- if ret < 0 {
- return ret, errors.New("XG_ERROR")
- }
- pConn.prepareName = ""
- pConn.prepareName = fmt.Sprintf(pConn.prepareName+"STC%d", pConn.prepareNo)
- ret, err := xgCmdPrepare(pConn, sql, &pConn.prepareName)
- if err != nil {
- return ret, err
- }
- }
- return ret, errors.New("xgSockPrepare_ERROR")
- }
- ret := 0
- // XGCSParam* p_params= pconn->params;
- old_p := pConn.havePrepare
- // char* sql=strdup(cmd_sql);
- *prepareName = fmt.Sprintf("STC%d", pConn.prepareNo)
- pConn.prepareNo++ // 递增 prepare_no 的值
- ret, err := xgCmdPrepare(pConn, sql, &pConn.prepareName)
- if err != nil {
- return 0, err
- }
- pConn.havePrepare = old_p // this keeped by prepare_name
- return ret, nil
- }
|