quinta-feira, 15 de setembro de 2011

Tutorial wxWidgets e sqlite3 parte 14 - Excluindo registros

Para finalizar o sistema, vamos escrever a função para deletar os registros.

Ela vai funcionar da seguinte maneira:

Vamos criar uma função que vai receber o ID do registro que está sendo editado, vamos passar este ID para um comando SQL, vamos chamar ExecuteUpdate(SQL).

Escreva a função:

sqlf.h
//Função para deletar um registro...
//Passo como parâmetro o ID do registro que será deletado...
void DeleteInDB(wxString ID);

sqlf.cpp
void DeleteInDB(wxString ID)
{
    //Abro o banco de dados
    wxSQLite3Database *db = OpenDB(GetExecPath() + wxT("/agenda.db3"));

    //SQL para deletar o registro...
    wxString SQL = wxT("DELETE FROM contatos WHERE ID=") + ID + wxT(";");

    //ExecuteUpdate para deletar o registro...
    db->ExecuteUpdate(SQL);

    //Fecho db...
    CloseDB(db);
}

Agora vamos chamar esta função no frame principal, na função OnClickDelete.

Nó vamos confirmar com o usuário se ele quer mesmo que delete o registro, depois deletamos o registro.

framep.cpp
//Aqui o evento quando eu clicar no botão deletar...
void wxFramePrincipal::OnClickDeletar(wxCommandEvent& event)
{
    //Vamos verificar também se o registro está em modo de edição...
    //Pois se não estiver, não teremos quem deletar lá no banco de dados...
    if(ID == -1)
        return;

    //Vamos perguntar primeiro se o usuário tem certeza que quer deletar o registro...
    int confirma = wxMessageBox(wxT("Tem certeza que quer deletar o registro?"), wxT("Confirmação"), wxYES_NO);

    //Se o usuário clicar em não, cancelo a função...
    if(confirma == wxNO)
        return;

    //Executo a função para deletar o registro...
    DeleteInDB(wxString::Format(wxT("%d"), ID));

    //Após deletarmos um registro atualizamos o wxGrid lista contatos...
    SelectInDB(lista_contatos);

    //E limpamos os campos de edição...
    LimparCampos();
}

Pronto, o sistema está completo, agora vocês podem refazer o mesmo, adicionando novas funcionalidades, adicionando outros campos, tabelas, etc...

Espero que tenham aproveitado a sequencia de tutoriais sobre wxWidgets e sqlite3 usando a biblioteca wxSqlite3.

Até a próxima.

0 comentários:

Postar um comentário