Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Java + Firebird/Interbase ::: Metadados da Base de Dados (Database Metadata)

Como retornar os tipos de dados suportados pelo Firebird e seus correspondentes JDBC

Quantidade de visualizações: 7323 vezes
Em algumas situações precisamos obter os tipos de dados suportados pelo Firebird e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café.

O primeiro passo é obter os tipos de dados suportados pelo Firebird com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no Firebird enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos.

Veja o código completo para o exemplo:

package estudos_jdbc;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;

public class Main{
  static Map mapa; // usado para mapear os tipos JDBC
  
  public static void main(String[] args) {
    // string de conexão
    String databaseURL =
      "jdbc:firebirdsql:localhost/3050:C:\\Firebird_2_5\\dados\\estudos.fdb";
    String user = "sysdba";
    String password = "masterkey";
    String driverName = "org.firebirdsql.jdbc.FBDriver";

    try {
      Class.forName(driverName).newInstance();
      Connection conn = DriverManager.getConnection(databaseURL, user, password);

      // vamos obter um objeto da classe org.firebirdsql.jdbc.FBDatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de dados suportados por esta versão do Firebird
      // e seus correspondentes JDBC
      ResultSet tiposDados = dbmd.getTypeInfo();
      while(tiposDados.next()){
        System.out.println("Firebird: " + tiposDados.getString("TYPE_NAME") +
          " - JDBC: " + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE"))));
      }
      
      // vamos fechar o ResultSet
      tiposDados.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
......


O resultado da execução deste código foi:

Firebird: BIGINT - JDBC: BIGINT
Firebird: BLOB SUB_TYPE 0 - JDBC: LONGVARBINARY
Firebird: BLOB SUB_TYPE 1 - JDBC: LONGVARCHAR
Firebird: CHAR - JDBC: CHAR
Firebird: NUMERIC - JDBC: NUMERIC
Firebird: DECIMAL - JDBC: DECIMAL
Firebird: INTEGER - JDBC: INTEGER
Firebird: SMALLINT - JDBC: SMALLINT
Firebird: FLOAT - JDBC: FLOAT
Firebird: DOUBLE PRECISION - JDBC: DOUBLE
Firebird: VARCHAR - JDBC: VARCHAR
Firebird: DATE - JDBC: DATE
Firebird: TIME - JDBC: TIME
Firebird: TIMESTAMP - JDBC: TIMESTAMP
Firebird: ARRAY - JDBC: OTHER
Firebird: BLOB SUB_TYPE <0 - JDBC: BLOB

Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Cookies

Cookies em JavaScript - Como escrever uma função para a criação de cookies em JavaScript

Quantidade de visualizações: 8025 vezes
Nesta dica mostrarei como podemos criar uma função JavaScript chamada gravarCookie() que recebe o nome, o valor e a duração de dias do cookie. Em outras dicas desse seção você encontra a função que faz a leitura dos cookies criados.

Veja o código JavaScript completo, incluindo o código HTML:

<html>
<head>
<title>Estudando JavaScript</title>

<script type="text/javascript">
  // função que permite gravar um cookie
  function gravarCookie(nome, valor, diasDuracao){
    var dataExpiracao = new Date();
    dataExpiracao.setTime(dataExpiracao.getTime() 
      + (diasDuracao * 24 * 3600 * 1000));
    document.cookie = nome + "=" + escape(valor) +
      ((diasDuracao == null) ? "" : "; expires=" + dataExpiracao);
......


Ao executar este código nós teremos o seguinte resultado:

Cookie criado com sucesso.


JavaScript ::: Dicas & Truques ::: Data e Hora

Como exibir a data e hora atual em JavaScript usando o objeto Date

Quantidade de visualizações: 7952 vezes
O objeto Date da linguagem JavaScript pode ser usado quando queremos retornar ou exibir a data e hora atual. Nesta dica eu mostro como criar um objeto Date e em seguida mostrar os resultados na página.

Veja o código HTML completo para o exemplo:

<!doctype html>
<html>
<head>
  <title>Datas em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos obter a data e hora atual
......


Ao executar este código JavaScript nós teremos o seguinte resultado:

Data e hora atual: Sat Feb 04 2023 15:08:32 GMT-0300 (Horário Padrão de Brasília)


C++ ::: C++ para Engenharia ::: Física - Mecânica

Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em C++

Quantidade de visualizações: 185 vezes
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados.

A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é:

\[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \]

Onde:

Epg ? energia potencial gravitacional (em joule, J).

m ? massa do corpo (em kg).

g ? aceleração da gravidade (m/s2).

h ? altura do objeto em relação ao chão (em metros).

Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula.

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo?

Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C++ completo para o cálculo:

#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  double gravidade = 9.80665;
  // massa do corpo
  double massa = 2; // em kg
  // altura do corpo em relação ao chão
  double altura = 1.5; // em metros
  
  // vamos calcular a energia potencial gravitacional
......


Ao executar este código C++ nós teremos o seguinte resultado:

A Energia Potencial Gravitacional é: 29.419950J


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como retornar a quantidade de colunas do TDBGrid do Delphi em tempo de execução

Quantidade de visualizações: 9065 vezes
Em algumas situações precisamos obter a quantidade de colunas em um controle TDBGrid em tempo de execução. Isso pode ser feito por meio da propriedade Count da classe TDBGridColumns. Um controle TDBGrid possui uma referência a um objeto desta classe por meio de sua propriedade Columns.

Veja um trecho de código no qual clicamos em um botão e exibimos a quantidade de colunas em um DBGrid chamado "DBGrid1":

procedure TForm3.Button3Click(Sender: TObject);
var
  colunas: Integer;
begin
  // vamos obter a quantidade de colunas no DBGrid
......


Ao executar o código e clicar no botão você verá uma mensagem parecida com:

"O DBGrid possui 10 colunas".

Esta dica foi escrita e testada no Delphi 2009.


Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de Portugol - Como testar se um ano é bissexto em Portugol - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou não

Quantidade de visualizações: 847 vezes
Pergunta/Tarefa:

Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016.

Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400.

Escreva um programa Portugol que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não.

Sua saída deverá ser parecida com:

Informe o ano: 2024
O ano informado é bissexto.
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Webstudio:

// Como testar se um ano é bissexto em Portugol
programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro ano

    // vamos solicitar que o usuário informe um ano
    escreva("Informe o ano: ")
    leia(ano)

......



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol

Veja mais Dicas e truques de Portugol

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 13 usuários muito felizes estudando em nosso site.