/*
   *Buscar posicao do ultimo registro
   *@return chave para ultimo registro encontrado
   */
  public Object buscarUltimo() {
    Object ultimo = null;

    SelectSqlBD sql = new SelectSqlBD();
    sql.setTabela(ligacao.getTabela());
    sql.insereColuna(_campoChave, "chave", "max");
    TabelaBD reg = ServidorBD.executaQuery(sql.getQuery());

    if (reg.primeiro() && reg.getColuna("chave") != null) {
      ultimo = reg.getColuna("chave");
    }

    return ultimo;
  }
  private Object buscarPosicao(Object chave, String criterio, String condicao) {
    Object registro = null;
    String chaveFormatada = chaveFormatada(chave);

    SelectSqlBD sql = new SelectSqlBD();
    sql.setTabela(ligacao.getTabela());
    sql.insereColuna(_campoChave, "chave", condicao);
    sql.insereCondicao(_campoChave + criterio + chaveFormatada);
    TabelaBD reg = ServidorBD.executaQuery(sql.getQuery());

    if (reg.primeiro() && reg.getColuna("chave") != null) {
      registro = reg.getColuna("chave");
    }

    return registro;
  }
  /**
   * Procurar campo especifico baseado em seu conteudo
   *
   * @param nomeCampo
   * @param chave
   * @param campoDescricao
   * @return
   */
  public Object[][] procurarCampo(String nomeCampo, String chave, String campoDescricao) {
    Object[][] resultado = null;

    SelectSqlBD sql = new SelectSqlBD();
    sql.setTabela(ligacao.getTabela());
    sql.insereColuna(_campoChave);
    sql.insereColuna(campoDescricao);
    sql.insereCondicao(nomeCampo + " LIKE " + chave);
    TabelaBD reg = ServidorBD.executaQuery(sql.getQuery());
    int numRegistros = reg.getTotalRegistros();

    if (numRegistros > 0) {
      resultado = new Object[numRegistros][2];
      reg.primeiro();
      for (int i = 0; i < numRegistros; i++) {
        resultado[i][0] = chaveFormatada(reg.getColuna(0));
        resultado[i][1] = reg.getColuna(1);
        reg.proximo();
      }
    }

    return resultado;
  }