Dataset

O framework Jam.py usa o conceito de dataset que é muito próximo dos datasets do Embarcadero Delphi.

Nota

Existem outras formas de ler e modificar os dados do banco de dados. Você pode usar o método connect da tarefa para obter uma conexão do pool de conexões e usar a conexão para acessar o banco de dados utilizando a API de Banco de Dados em Python.

Todos os itens com item_type “item” ou “table”, assim como seus detalhes (veja Árvore de tarefas) podem acessar dados das tabelas associadas do banco de dados do projeto e gravar alterações nelas. Todos são objetos da classe Item

Ambas as classes possuem os mesmos atributos, métodos e eventos associados ao tratamento de dados.

Para obter um dataset (um conjunto de registros) da tabela de datasets do projeto, use o método open. Este método, baseado nos parâmetros, gera uma consulta SQL para obter um dataset.

Após o dataset ser aberto, a aplicação pode navegar por ele, alterar seus registros ou inserir novos e gravar as alterações na tabela de banco de dados do item.

Por exemplo, as funções abaixo irão definir os valores do campo support_rep_id para os valores do campo id no cliente e servidor, respectivamente:

function set_support_id(customers) {
    customers.open();
    while (!customers.eof()) {
        customers.edit();
        customers.support_rep_id.value = customers.id.value;
        customers.post();
        customers.next();
    }
    customers.apply();
}
def set_support_id(customers):
    customers.open()
    while not customers.eof():
        customers.edit()
        customers.support_rep_id.value = customers.id.value
        customers.post()
        customers.next()
    customers.apply();

Essas funções recebem o item customers como parâmetro. Em seguida, o método open é usado para obter uma lista de registros da tabela de clientes e cada registro é modificado. No final, as alterações são salvas na tabela do banco de dados, usando o método apply (veja Modificando datasets ).

Nota

Existe uma forma mais curta de navegar em um dataset (veja Navegando em datasets ). Por exemplo, em Python, os seguintes loops são equivalentes:

while not customers.eof():
    print customers.firstname.value
    customers.next()

for c in customers:
    print c.firstname.value

Videos

Datasets and Datasets Part 2 demonstram quase todos os métodos de trabalho com datasets em exemplos específicos.