package
1.0.107
Repository: https://github.com/aoticombr/golang.git
Documentation: pkg.go.dev

# README

A estrutura de código fornecida parece ser uma implementação de um pacote chamado "dataset". O pacote inclui uma estrutura chamada DataSet com vários métodos associados a ela. Aqui está uma descrição geral dos principais elementos da estrutura e seus métodos:

DataSet (estrutura):

Connection: Um ponteiro para uma estrutura Conn, que representa uma conexão com o banco de dados.

Columns: Uma lista de nomes de colunas.

Sql: Uma estrutura Strings que contém uma consulta SQL e seus parâmetros.

rows: Uma lista de linhas (registros) retornados do banco de dados.

param: Um mapa de parâmetros usados na consulta SQL.

index: Um índice usado para navegar pelas linhas retornadas.

Recno: O número atual do registro sendo acessado.

tx: Um ponteiro para uma transação SQL.

Métodos da estrutura DataSet:

Eof() bool: Verifica se o cursor está no final do conjunto de dados.

Count() int: Retorna o número de registros no conjunto de dados.

GetParams() []any: Retorna uma lista de valores de parâmetros.

Open() error: Executa a consulta SQL e popula o conjunto de dados com os resultados.

StartTransaction() error: Inicia uma transação.

Commit() error: Confirma uma transação.

Rollback() error: Desfaz uma transação.

ExecTransact() (sql.Result, error): Executa uma consulta dentro de uma transação.

ExecDirect() (sql.Result, error): Executa uma consulta diretamente no banco de dados.

scan(list *sql.Rows): Lê as linhas retornadas do banco de dados e as armazena no conjunto de dados.

ParamByName(paramName string, paramValue any) *DataSet: Define um valor para um parâmetro.

FieldByName(fieldName string) cp.Field: Retorna um campo específico pelo nome.

Locate(key string, value any) bool: Localiza um registro com base em um campo e valor específicos.

First(): Move o cursor para o primeiro registro.

Next(): Move o cursor para o próximo registro.

IsEmpty() bool: Verifica se o conjunto de dados está vazio.

IsNotEmpty() bool: Verifica se o conjunto de dados não está vazio.

RowInStruck(targetStruct interface{}) ([]interface{}, error): Mapeia os registros do conjunto de dados para uma estrutura fornecida.

GetDataSet(pconn *conn.Conn) *DataSet: Cria e retorna uma nova instância do DataSet com uma conexão fornecida.

Exemplo de uso 1

package main

import (
	"fmt"
	"time"

	ora "github.com/aoticombr/golang/connection"
	ds "github.com/aoticombr/golang/dataset"
)

func main() {
conn, _ := ora.GetConn(ora.ORA)
	defer conn.Disconnect()
	q := ds.GetDataSet(conn)
	q.Sql.Add("SELECT cdcontaspagar, historico, dtaconta, valor FROM CONTASPAGAR where rownum <= 10")
	q.Open()
	q.First()
	fmt.Println("q.Eof():", q.Eof())
	for !q.Eof() {
		fmt.Println(
			q.FieldByName("cdcontaspagar").AsInt64(),
			q.FieldByName("historico").AsString(),
			q.FieldByName("dtaconta").AsDateTime(),
			q.FieldByName("valor").AsFloat64(),
		)
		q.Next()
	}
}	

Exemplo de uso 2

package main

import (
	"fmt"
	"time"

	ora "github.com/aoticombr/golang/connection"
	ds "github.com/aoticombr/golang/dataset"
)

type ContasPagar struct {
	Cdcontaspagar int64
	Historico     string
	Dtaconta      time.Time
	Valor         float32
}

func main() {
conn, _ := ora.GetConn(ora.ORA)
	defer conn.Disconnect()
	q := ds.GetDataSet(conn)
	q.Sql.Add("SELECT cdcontaspagar, historico, dtaconta, valor FROM CONTASPAGAR where rownum <= 10")
	q.Open()
	q.First()
	//var contas []ContasPagar
	results, err := q.RowInStructList(ContasPagar{})
	if err != nil {
		fmt.Println("Erro ao executar a consulta:", err)
		return
	}
	fmt.Println("results:", results)
	for _, result := range results {
		contasPagar, ok := result.(ContasPagar) // Faz a conversão para o tipo correto

		if !ok {
			fmt.Println("Erro ao converter resultado para ContasPagar")
			continue
		}

		fmt.Println("Cdcontaspagar:", contasPagar.Cdcontaspagar)
		fmt.Println("Historico:", contasPagar.Historico)
		fmt.Println("Dtaconta:", contasPagar.Dtaconta)
		fmt.Println("Valor:", contasPagar.Valor)

		fmt.Println("----------------------")
	}
}	

# Functions

No description provided by the author

# Structs

No description provided by the author