Comparar só a data em campo DateTime (SQL Server)

Olá meus caros, boa tarde!

Este post é praticamente um reblog do site Pcflex.org, pois lá encontrei exatamente o que eu procurava. Apesar de não ter entendido muito bem a proposta do site que disse ser em teste um “aglomerado de profissionais de TI”, coloquei ele na categoria de links úteis no blog. Então aí vai, chupado mesmo.

Para comparar somente a data em um campo onde está salvo data e hora, é preciso primeiro converter a data para o formato desejado.

Ex.:

SELECT campodatahora
FROM tabela
WHERE CONVERT(nvarchar(10), campodatahora, 103) = '22/02/2006';

O 103 indica que deve ser retornado o formato dd/MM/yyyy

A tabela abaixo mostra outros códigos que podem ser utilizados com o comando CONVERT.

Supondo CURRENT_TIMESTAMP retornando o dia 22 de fevereiro de 2006 as 16 horas 26 minutos e 8 segundos.

0 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0)
1 02/22/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1)
2 06.02.22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2)
3 22/02/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 3)
4 22.02.06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 4)
5 22-02-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 5)
6 22 Feb 06 CONVERT(CHAR(9), CURRENT_TIMESTAMP, 6)
7 Feb 22, 06 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 7)
8 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 8 )
9 Feb 22 2006 4:26:08:020PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 9)
10 02-22-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 10)
11 06/02/22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 11)
12 060222 CONVERT(CHAR(6), CURRENT_TIMESTAMP, 12)
13 22 Feb 2006 16:26:08:020 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 13)
14 16:26:08:037 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 14)
20 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20)
21 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 21)
22 02/22/06 4:26:08 PM CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22)
23 2006-02-22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23)
24 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 24)
25 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 25)
100 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 100)
101 02/22/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 101)
102 2006.02.22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)
103 22/02/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 103)
104 22.02.2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 104)
105 22-02-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 105)
106 22 Feb 2006 CONVERT(CHAR(11), CURRENT_TIMESTAMP, 106)
107 Feb 22, 2006 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 107)
108 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 108)
109 Feb 22 2006 4:26:08:067PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 109)
110 02-22-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 110)
111 2006/02/22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 111)
112 20060222 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112)
113 22 Feb 2006 16:26:08:067 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 113)
114 16:26:08:067 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114)
120 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)
121 2006-02-22 16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 121)
126 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 126)
127 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 127)
130 24 ???? 1427 4:26:08:080PM CONVERT(CHAR(32), CURRENT_TIMESTAMP, 130)
131 24/01/1427 4:26:08:080PM CONVERT(CHAR(25), CURRENT_TIMESTAMP, 131

Pois bem, esta tabelinha aí acima é show de bola mesmo. Agora, se você não quiser converter data alguma, use o macete que meu chefe(e todos) usam, faça a comparação da data dentro do intervalo, pois também dá certo.


dataenvio > '2014-11-27' and dataenvio < '2014-11-29'

fonte: http://www.pcflex.org/sql/comparar-so-a-data-em-campo-datetime-sql-server/

07 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Criação do edmx na camada de Domínio

Olá para todos.

Agora que já temos nossas camadas já criadas e nosso script executado no banco, iremos importar estas tabelas para formar as nossas classes na nossa aplicação, pois neste modelo que estou seguindo, não irei utilizar a técnica de Code First, que seria criar as classes manualmente.

Let’s go Bob.

– Vá em View > Other Windows > Package Manager Console e no gerenciador que se abrirá na parte inferior do Visual Studio, selecione GPA.Infra em Default Project e instale o Entity Framework com o comando:

Install-Package EntityFramework

– Em GPA.Infra, clicar com o botão direito em References > Solution e adicionar GPA.Dominio(Aproveite referencie também as Camadas de Infra e Domínio à Camada de Aplicação).

– Em GPA.Infra, clicar com o botão direito e siga em Add > New Item > Data > ADO.NET Entity Data Model com o nome de de GPA.edmx e clicamos em Add.

– Em seguida, escolheremos a opção Generate from database.

Vou deixar uma observação aqui a respeito de tabelas que são entidades fracas contidas em seu banco de dados. Após criar um modelo de banco de dados contendo uma entidade fraca que continha 2 chaves estrangeiras, tive que incluir uma chave primária nesta tabela porque o mapeamento do edmx jogou um erro dizendo que eu não poderia mapear algo sem chave primária. Em razão disso, tive de reescrever alguns pontos no tutorial que trata de modelo lógico.

Warning 2 Error 6002: The table/view ‘GPA.dbo.GPA_Modalidade_Usuario’ does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view. C:\sistemas\dotnet\gpa\GPA\GPA.Infra\GPA.edmx 1 1 GPA.Infra

– Logo após a criação do seu edmx, clique na parte branca do mapeamento(ou pressione F4) e em Code Generation(no lado inferior direito), marque a opção Code Generation como none para que não seja gerado código automático. Em seguir, salve as alterações.

– Em seguida, clique com o botão direito na parte branca e no menu que segue Add Code Generation Item > Code > EF 5.x DbContext Generator e defina-o como GPA.tt. Não ligue para as possíveis caixas de diálogo que podem vir a aparecer. Em seguida, salve novamente e feche o edmx.

– Arraste o seu GPA.tt para o seu projeto de Domínio(GPA.Dominio), pois ele contém suas classes que foram geradas a partir do banco.

– Em seguida, dê 2 cliques em GPA.tt e na linha onde encontra-se

const string inputFile = @”GPA.edmx”;

Troque para

const string inputFile = @”../GPA.Infra/GPA.edmx”;

Já que trocamos de lugar o nosso “tt”, temos de referenciá-lo novamente. Não se esqueça de salvar.

– Altere também em GPA.Context.tt dando 2 cliques dentro de GPA.Infra, onde encontra-se:

using System.Data.Objects;

using System.Data.Objects.DataClasses;

using System.Linq;

Acrescente

using System.Data.Objects;

using System.Data.Objects.DataClasses;

using System.Linq;

using GPA.Dominio;

10º – Apague o GPA.tt contido no GPA.Infra;

11º – Abra o arquivo GPA.Context.cs contido em GPA.Context.tt e adicione a referência de GPA.Dominio.

using System;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

using GPA.Dominio;

12º – Em seu arquivo app.config dentro de sua camada de infra(GPA.Infra) há uma seção tratando sobre connection string, que é responsável por informar os dados corretos de conexão com seu banco de dados. Se for a primeira vez em que você está conectando no seu banco, abra o arquivo e confira se ela está lá.

<connectionStrings>

<add name=”DefaultConnection” connectionString=”Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True” providerName=”System.Data.SqlClient” />

</connectionStrings>

Criando o Contexto de sua aplicação e seus Repositórios

Dentro da camada de Infra(GPA.Infra), iremos criar um arquivo chamado Contexto.cs para as nossas classes. Este arquivo faz o intermédio entre o banco de dados e a aplicação, utilizando o Entity Framework, que é um framework responsável por abstrair a nossa camada de conexão com banco.

Um pouco sobre o Entity Framework 5

– Com o botão direito em cima da camada de Infra, criaremos o nosso Contexto, Add > Class > Contexto.cs e inserir o conteúdo abaixo(aconselho ler o arquivo e tentar fazê-lo na unha, pois o Visual Studio tem muitos problemas com dependências, por isso, Ctrl + C e Ctrl + V talvez não seja uma idéia tão boa), claro, com as devidas referências.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GPA.Dominio;
using System.Data.Entity;

namespace GPA.Infra
{
public class Contexto : DbContext
{
public DbSet<GPA_Anexo> Anexo { get; set; }

public DbSet<GPA_Modalidade> Modalidade {get; set; }

public DbSet<GPA_Modalidade_Usuario> Modalidade_Usuario {get; set; }

public DbSet<GPA_Resposta> Resposta {get; set; }

public DbSet<GPA_Solicitacao> Solicitacao {get; set; }

public DbSet<GPA_Status> Status {get; set; }

public DbSet<GPA_Tipo_Usuario> TipoUsuario {get; set; }

public DbSet<GPA_Usuario> Usuario {get; set; }
}

}

– Agora, para cada classe, criaremos os repositórios. Enquanto no padrão MVC, utilizamos a camada Model para também declarar o métodos de nossa classe, aqui utilizaremos a camada de Infra, que por sua vez, implementa os métodos em conjunto com a camada de Domínio(GPA.Dominio).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GPA.Dominio;
namespace GPA.Infra
{
public class RepositorioDeUsuario
{

/*Já de cara, instanciaremos o nosso Contexto
* para colocarmos em ação a camada responsável
* pela nossa conexão.
*/

public GPAEntities Contexto { get; set; }

//Aqui abaixo, nosso método construtor
public RepositorioDeUsuario() {

//Inicializamos o nosso Contexto
this.Contexto = new GPAEntities();

/*Aqui, o proxy deve estar desabilitado para
* evitar referência circular
*/
Contexto.Configuration.ProxyCreationEnabled = false;
}

public List<GPA_Usuario> ObterTodosOsUsuarios() {
return this.Contexto.GPA_Usuario.ToList();
}

public void InserirUsuario(GPA_Usuario usuario) {
this.Contexto.GPA_Usuario.Add(usuario);
this.Contexto.SaveChanges();
}

public int BuscarQuantidadeRegistros() {
return this.Contexto.GPA_Usuario.Count();
}

public GPA_Usuario ObterUsuarioPorId(int id) {
return this.Contexto.GPA_Usuario.Find(id);
}
public void RemoverUsuario(GPA_Usuario usuario) {
this.Contexto.GPA_Usuario.Remove(usuario);
this.Contexto.SaveChanges();
}

}

}

Referência Circular

Vale ressaltar que quando mapeamos nosso modelo na camada de Domínio, existem relacionamentos(1:N, N:N, 1:1) trazidos do banco de dados e replicados nas classes que podem gerar um referência circular, por isso utilizamos a opção abaixo marcada como false para corrigirmos este pequeno problema na implementação de nosso sistema.

Contexto.Configuration.ProxyCreationEnabled = false;

É isso aí então pessoal. Fiquem sabendo que provavelmente eu irei atualizar os conteúdos porque muitos estavam em rascunhos quase prontos há mais de um ano, portanto estejam preparados que este conteúdo é passível de revisão. Se tiverem dúvidas, postem aí.

fonte: http://mastigado.wordpress.com

Post Anterior: http://mastigado.wordpress.com/2014/11/25/06-execucao-do-script-de-criacao-de-tabelas-e-seus-relacionamentos-no-sql-server/

06 – Execução do script de criação de tabelas e seus relacionamentos, no SQL Server

Olá para todos!

Gente, não há muito o que dizer quando o assunto é rodar um script SQL no SQL Server, pois eu coloquei este tópico como se fosse algo extraordinário, mas não é tão assim não(mas é legal :) ).

fonte: http://mastigado.wordpress.com

O que eu tenho que fazer? Simples! Abra o seu cliente SQL Server(No meu caso, utilizei o SQL Management Studio), copie o script SQL Server do 3º post desta série, clique com o botão direito em cima do banco GPA que você criou em seu SQL Server, cole o script SQL que você copiou e pressione F5 ou mande executar e pronto!

 

Script SQL do 3º post

Depois disso, você terá as suas tabelas como as que estão do lado esquerdo(Não se preocupe se na minha tela você vê tabelas que não tem no script).

E é isso!

fonte: http://mastigado.wordpress.com

Próximo Post: 07 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Criação do edmx na camada de Domínio

Post Anterior: 05 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Criação da Solution no Visual Studio e camadas de Infra, Domínio e Aplicação/

05 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Criação da Solution no Visual Studio e camadas de Infra, Domínio e Aplicação

Olá para todos.

Dando continuidade em nossa aplicação, agora iremos entrar no Visual Studio 2010. Desde o primeiro post, informei no título de que iria criar uma aplicação em Asp.Net MVC 4 utilizando o ExtJS como a camada de Apresentação de nossa aplicação C#. Claro, começaremos a codificar nossa aplicação na linguagem C#, pois será ela a nossa linguagem de servidor para nos comunicarmos com o banco de dados.

Por vezes, esta idéia de cliente/servidor é um pouco confusa para quem está começando agora, mas não tem mistério, pois a grosso modo, é como se tivéssemos duas aplicações que devem ser integradas, uma no cliente e outra no servidor.

fonte: http://mastigado.wordpress.com

Modelo MVC vs Modelo de Domínio

Nas aulas de C# que tive com o professor André Pires, aprendi a trabalhar com o chamado modelo de Domínio, que contém(como o MVC), 3 camadas. São elas.

  • Infra
  • Domínio
  • Aplicação
  • Apresentação

Peraê, eu vi 4 e não 3! Bem, eu não contei com a camada de Apresentação.

Bem, para quem não conhece o modelo MVC(Model, View e Controller), a grosso modo, se utiliza a camada Model para modelar nossas classes, a View para ser nossa interface com o usuário(como formulários, área de upload de arquivo, galeria de imagens, etc) e a Controller, para fazer esta intermediação entre as camadas View e Model, onde colocamos nossas requisições(pedidos de listagem de todos os usuários de determinada tabela do banco de dados, verificação de login ativo, inserção de novo registro, etc).

Utilizando o modelo de Domínio dentro do Visual Studio, os conceitos mudam um pouco, mas a finalidade é basicamente a mesma.

Camada de Domínio –  para descrever nossas classes em C#. Alguns colocam alguns métodos dentro dela, mas se quisermos uma aplicação mais genérica e menos desacoplada, apenas classes e métodos get/set serão descritos aqui.

Camada de Infra – para ser utilizada como responsável pelo contexto de nossa aplicação com o banco de dados. Esta camada conversa diretamente com o banco. Ela recebe as requisições da aplicação e utiliza o modelo de Domínio para complementar suas ações, por isso que enquanto no MVC, a camada Model acaba agrupando funções de persistência de conexão(o que não necessariamente seja verdade) e definição de classes, aqui no modelo de Domínio, as camadas assumem um papel melhor definido nestas situações.

Camada de Aplicação – para ser utilizada basicamente como o “Controller” do modelo MVC funciona, aceita e repassa requisições(pedidos de listagem de todos os usuários de determinada tabela do banco de dados, verificação de login ativo, inserção de novo registro, etc), mas esta nossa camada de Aplicação, faz a intermediação entre a camada de Infra e a de Apresentação.

Camada de Apresentação – Enquanto no nosso modelo MVC temos a camada View, aqui temos uma camada de Apresentação. Bem, então por que oficialmente eu não contei com ela? Porque a camada de Apresentação não necessariamente precisa ter uma camada, mas você pode ter várias camadas de Apresentação que sempre irão fazer requisições à sua camada de Aplicação. Eu posso ter uma camada de Apresentação em Windows Forms, uma outra em Web Forms, uma outra que só trabalha com Web Services e outra rodando ExtJS como este tutorial propõe. Por isso, esta será a nossa última camada a ser criada.

Bem, let’s go Bob

1º – Criando uma nova Solution

A Solution será utilizada para abrigarmos os nossos projetos, projetos estes que chamamos mais acima de camadas. Vale lembrar que não necessariamente um projeto precisa ser uma camada, pois você pode simplesmente criar uma pasta dentro de um projeto e dizer que este diretório representa uma camada, mas por questão de organização farei ele desta forma.

Para criar uma Solução e iniciar projetos dentro dela, deve-se ir em File > New > Projetct > Other Projects Types > Visual Studio Solutions > Blank Solution e nomeá-la para GPA.

2º – Preparando o ambiente

Já que iremos utilizar utilizar o Asp.Net MVC 4, então já deixaremos tudo o que precisaremos instalar para não termos problemas com dependências lá na frente(Se você estiver utilizando o Visual Studio 2012, provavelmente o Entity Framework já virá instalado e talvez outras coisas).

Para instalar o MVC4 no Visual Studio 2010 é necessário instalar os programas abaixo.

  • Service Pack 1 Visual Studio 2010
  • AspNet MVC 4

Plugins para serem instalados no Extension Manager:

  • Export Templates Wizard
  • SOA Cleaner
  • EF 4.x EntityObject Generator fo C#
  • ADO.NET Mockable Entity Object Generator
  • EF 5.x DbContext Generator for C#
  • Entity Designer Database Generation Power Pack 1

Para compilar Views e Procedures:

  • Entity Framework PowerTools(Este, interpreta diretamente o arquivo .edmx. Antes de compilar também é dada a opção de colocar ou não arquivos referente ao .edmx junto com o executável). Veremos mais a frente o que é o arquivo edmx.

Para gerenciar melhor os pacotes

  • Nuget(O Nuget é um gerenciador de pacotes para o Visual Studio, assim o apt-get, yum, pacman, urpmi estão para o Linux). Ah, o que é um gerenciador de pacotes? Bem, a grosso modo é programa em modo texto que serve para você instalar outros programas. Você pode fazer isso digitando o nome do programa que quer instalar no console do Nuget, daí aperta o Enter e esperar ele instalar e configurar o programa para você(requer o uso de conexão de internet).

Plugins para serem instalados via Nuget

  • miniprofiler (miniprofiler.com)

3º – Criando um projeto de Dominio.

Este projeto guardará as classes de sua aplicação. (Clique com o botão direito na Solution, ir em Add > New Project > Visual C# > Windows > Class Library). Crie um projeto com o nome de GPA.Domínio.

4º – Criando um projeto de Infra.

Este projeto guardará as classes de sua aplicação. (Clique com o botão direito na Solution, ir em Add > New Project > Visual C# > Windows > Class Library). Crie um projeto com o nome de GPA.Infra.

5º – Criando um projeto de Aplicação.

Este projeto guardará as classes de sua aplicação. (Clique com o botão direito na Solution, ir em Add > New Project > Visual C# > Windows > Class Library). Crie um projeto com o nome de GPA.Aplicação.

E é isso. Por enquanto só teremos estes 3 projetos e darei mais detalhes nos próximos posts.

fonte: http://mastigado.wordpress.com

Próximo Post: 06 – Execução do script de criação de tabelas e seus relacionamentos, no SQL Server

Post Anterior: 04 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Dicionário de Dados

04 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Dicionário de Dados

Olá pessoal!

Desculpem pela demora das postagens sobre este assunto. Por causa disso não irei demorar muito neste post sobre Dicionário de Dados.

fonte: http://mastigado.wordpress.com

A grosso modo, o que eu faço?

Bem, eu mapeio todos os meus campos das tabelas do meu sistema no arquivo do Word. Você pode usar Excel ou outra coisa que ache melhor. Eu literalmente executo o aplicativo Microsoft Word, crio uma tabela específica para descrever sobre alguma tabela do meu banco de dados e nesta tabela do meu arquivo do Word, especificarei sobre as informações do meu banco de dados, sempre fazendo uma tabela no Word para cada tabela do banco de dados, desta forma como está abaixo:

Tabela Status
Descrição Guardar status do usuário
Observações A tabela indica o status que permite ou não a entrada do usuário no sistema
Campos
Nome Descrição Tipo Tamanho Observações (PK /FK)
cd_status Código do Status Integer PK
ds_status Descrição do status(Valores: Ativo, Inativo) Varchar 10 NOT NULL

 

Tabela Tipo_Usuario
Descrição Guardar o tipo do usuário
Observações A tabela armazena informação sobre determinado tipo de usuário para indicar seu nível de acesso ao sistema.
Campos
Nome Descrição Tipo Tamanho Observações (PK /FK)
tp_usuario Código do Tipo do Usuário Integer PK
ds_tp_usuario Descrição do tipo de usuário(Valores: Admin, Usuário, etc) Varchar 10 NOT NULL

Como vocês podem ver acima, eu descrevi duas das minhas várias tabelas do meu banco de dados.

Entretanto, como eu não estou querendo me alongar neste assunto, vou deixar um link do blog do Luis, que trata melhor do assunto do que eu.

fonte: http://mastigado.wordpress.com

Próximo Post: 05 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Criação da Solution no Visual Studio e camadas de Infra, Domínio e Aplicação

Post Anterior: 03 – Criando um aplicação completa em Asp.Net/MVC 4 e ExtJS 4 – Modelo Lógico, Normalização de Dados(Formas Normais) e criação de banco em SQL Server e MySQL

02 – Compilando o seu programa em C no Linux

Hello friends!

Bem, não vou embromar muito porque tenho que ir embora. Então, Let’s go Bob.

 

 

 

 

fonte: http://mastigado.wordpress.com

Hoje vou deixar aqui a forma como eu acredito que deveríamos compilar o nosso programa em C no Linux, baseado no que meu professor meu ensinou.

Bem, se você tem um arquivo em C no Linux, quando for compilar o seu fonte utilize a seguinte sintaxe:

Para um arquivo

gcc -Wall -Wextra -c file.c

Para vários arquivos

gcc -Wall -Wextra -c file1.c file2.c file3.c

Onde:

  • gcc: Significa que é o compilador que você utilizará para compilar o seu código em C;
  • -Wall: Significa que você quer que todos os warnings sejam mostrados durante o processo de compilação do seu código;
  • -Wextra: Quer dizer que você também deseja ver outros warnings extras que podem existir num processo de compilação;
  • -c: Este é utilizado para dizer que determinado arquivo ou arquivos está ou estão sendo compilados e a consequência disso é que ele irá gerar um arquivo com extensão “o” de objeto;

Logo após este processo é hora de gerar o seu programa executável. E você poderá gerá-lo desta forma abaixo:

Para um arquivo

gcc -o programa file.o -lcurses

Para vários arquivos

gcc -o programa file1.o file2.o file3.o -lcurses

Onde:

  • -o: Significa que estou me referindo ao meu objeto gerado durante o processo de compilação e transformando-o num executável, que chamei de programa. No Ruindows o programa executável tem extensão e é do tipo exe.
  • -lcurses: É um parâmetro para adicionar a biblioteca do C utilizada para utilizar cores, dar suporte à mouse, etc. Você pode consultar sobre a biblioteca NCurses neste post do site Viva o Linux.

Bem, agora temos o nosso programa e que geramos inclusive com o nome de programa! Para executá-lo você pode digitar o seguinte comando:

./programa ou sh programa

Fica à seu critério.

fonte: http://mastigado.wordpress.com

 

Algumas considerações:

Para instalar a biblioteca NCurses no Linux Debian ou em outras distribuições derivadas dele, utilize o comando abaixo no terminal:

apt-get install libncurses5-dev libncursesw5-dev

Para instalar a biblioteca que contém outras bibliotecas essenciais para a compilar e outras coisas:

apt-get install build-essential

Tá aí! Mastigado!

02 – Configurando o seu JAVA para programarmos e compilarmos (Aprenda a configurar o PATH da sua máquina)

No post anterior, fiz um exemplo básico com um “Hello World”, mas não disse como configurar o seu ambiente para programar em Java. Então, aqui neste post vou tentar esclarecer algumas coisas sobre este ambiente.

Então, let’s go Bob.

Featured image

fonte: http://mastigado.wordpress.com

Primeiro, vamos configurar o seu ambiente Java no Ruindows.

Quero que você saiba o que é preciso para compilar um programa em Java com apenas a utilização de seu JDK, que é o Kit de Desenvolvimento Java e que é encontrado no site da Oracle(atual proprietária do Java). Eu não irei te dar o caminho para dentro do site de onde você irá fazer o download deste JDK, pois basta você ir até lá e procurar pelo que você acha que te atende.

Bem, se você estiver utilizando o sistema operacional Ruindows, você deverá baixar um arquivo com mais ou menos este nome “jdk-6u45-windows-x64.exe“, mas isso é perfeitamente variável porque o Java já deve estar quase indo para a sua versão 9, enquanto este aí se refere a sua versão 6. Pois bem, o Java volta e meia é atualizado, então você tem que saber que funcionalidades bem antigas podem não funcionar mais em versões mais novas e vice versa.

Enfim, quando baixado o arquivo, você deverá instalá-lo em seu computador e configurar o PATH do sistema operacional para que você possa utilizar o programa do Java responsável pela compilação do seu código.

Antes, uma observação sobre o termo “compilar”. Bem resumidamente, compilar é o ato de você transformar tudo aquilo que você escreveu(seja na linguagem C, Java, C Sharp, etc) em uma coisa louca que só o computador que vai rodar o seu programa irá entender. Tem gente que chama esta coisa muito louca de bytecode(eu também costumo chamá-la assim).

Vá no menu Iniciar e digite cmd para abrir o seu prompt de comando do Ruindows(se você não souber o que é prompt, então vai continuar desse jeito que você é hoje). Em seguida, digite o path e verá algo parecido com isso:

Featured image

Com certeza irá aparecer um monte de programas no seu path. Daí, se você digitar o comando java -version, conseguirá ver a versão Java que está instalada se você instalou o seu JDK direitinho. Vale apontar aqui que para compilar um programa em Java, você deve digitar o comando javac nome_do_programa.java, onde javac significa Java Compiler(ou seja, compilador Java) e mais a frente, o nome do seu programa Java que você acabou de escrever. Então, só para ver se seu path está configurado para você poder compilar um programa Java via linha comando, digite javac no seu prompt e confira o resultado.

Se você receber a mensagem abaixo(ou algo parecido), o seu JDK não está configurado no seu path:

‘javac’ não é reconhecido como um programa interno ou externo, um programa operável ou um arquivo em lotes.

Para configurarmos isso temos duas maneiras:

Maneira 1: Crie um arquivo chamado setpathruindows.bat e coloque dentro do seu conteúdo o texto abaixo.

set path=%path%;C:\Program Files\Java\jdk1.8.0_20\bin
echo Set Path ATUALIZADO!

Onde o termo %path% simboliza todo o conteúdo do path da sua máquina que já mostramos mais acima e C:\Program Files\Java\jdk1.8.0_20\bin é o caminho da pasta bin que está dentro de onde está instalado o JDK  e que contém o programa chamado javac. Ah! Você terá de substituir o caminho da pasta bin que coloquei acima, pelo caminho da pasta bin que está no JDK da sua máquina, portanto procure e encontre, pois eu confio que você irá conseguir. Depois de confirmado e tal, vá no diretório onde está o arquivo setpathruindows.bat e execute-o(pelo prompt de comando) digitando apenas o seu nome e teclando Enter e se tudo deu certo, você poderá digitar javac e não verá aquela mensagem lá de cima novamente.

Outra coisa a ser dita é que a parte ruim desta maneira é que se você fechar o prompt e abrir novamente, você terá que executar o arquivo sepathruindows.bat novamente, pois você fez apenas um procedimento provisório. Esta forma é recomendada para quando você tem os seus códigos no seu pendrive, tem de ficar programando na faculdade e não tem permissão para ir até o Painel de Controle para alterar outras configurações mais avançadas.

Maneira 2: Esta maneira é a recomendada para quem tem o seu pczinho em casa ou no trabalho e lá pode configurar o que quiser, até o Minecraft(brincadeira, eu nem jogo Minecraft, mas não descrimino quem joga). O caminho correto no Windows 7 para sempre que você for abrir o prompt de comando e poder digitar javac sem medo é Iniciar > Painel de Controle > Sistema > Configurações Avançadas do Sistema e na guia Avançado da janela que se abrirá, clicar em Variáveis de Ambiente, irá procurar pela variável Path, em seguida clicará em editar e no final da linha do valor da variável, irá colocar um ponto e vírgula e o caminho da pasta bin do JDK Java instalado em sua máquina.

Featured image

Agora meu(minha) amigo(a), abra o seu prompt e dê o comando javac sem medo.

Agora, iremos configurar o PATH no Linux

Olha, no Linux existem mil maneiras de se preparar Neston, então, invente uma! Eu particularmente uso o meu querido Debian e lá, uso uma forma não padrão para setar a minha variável de ambiente e alguns dizem até que não é o local correto, mas por hora, vou mostrar como eu uso e ainda não tive problema.

Eu abro o console do Linux e com permissão de root, digito nano /etc/profile, onde nano é um dos editores de texto em modo de texto do Linux e profile é o arquivo que estou querendo editar.

O que farei na tela abaixo é inserir o caminho da pasta bin do meu JDK que está instalado no Linux no final da primeira linha onde está escrito PATH. Digite : e insira o caminho no final sempre dentro do parênteses.

Featured image

Para fechar o editor de texto Nano salvando o arquivo, pressione as teclas Crtl + O e em seguida tecle Enter.

Bem, após você reiniciar o seu Linux(ou digitar source /etc/profile) e executar o comando javac no console, irá ver que funcionou e se não funcionou é porque você provavelmente fez alguma cagada.

Lembrando que o Linux também tem PATH e é onde configuramos os programas ou arquivos ou qualquer outra coisa que desejamos acessar de qualquer local do sistema operacional. Para você conseguir visualizar onde estão e quais são as variáveis de ambiente no Linux, digite env no terminal.

O PATH do computador é o onde se localizam também algumas das variáveis de ambiente e por isso, grave isto, variáveis de ambiente podem ser acessadas por todo o sistema operacional, são a grosso modo, como as variáveis globais de um programa de computador.

Então, vamos agora ao principal!

Abra o console do Linux ou o prompt de comando do Windows, ambos que acabamos de configurar o path do Java.

Vá no meu post anterior criando um primeiro programa em java, copie o código do programa Hello World e cole dentro de um arquivo texto chamado HelloWorld.java

Daí, usando o console ou prompt de comando, vá até onde está este arquivo e dê o comando

javac HelloWorld.java

Ele irá criar um arquivo chamado HelloWorld.class, então novamente digite no console ou no prompt outro comando.

java HelloWorld

Neste caso, você executou um programa Java que você acabou de compilar retirando o .class de seu nome e ele tem que aparecer o que está abaixo.

Featured image

Se deu tudo certo, vou dizer o que né? Também, mastigado deste jeito!

fonte: http://mastigado.wordpress.com

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: