View
619
Download
0
Category
Preview:
Citation preview
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 1 de 60
ndice Capitulo I Definies......................................................................................................2 Capitulo II O ASP.NET..................................................................................................4 Introduo.....................................................................................................................4 ASP.NET, HTML, C# e DELPHI.NET ......................................................................4 Operadores de atribuio, comparao e lgicos.........................................................5 Operadores de aritmticos............................................................................................5 Operadores de incremento e decremento......................................................................6 Contadores....................................................................................................................6 Tipos/Variveis.............................................................................................................6 Tipos Vetores................................................................................................................6 Capitulo III Estruturas lgicas........................................................................................7 Estruturas .....................................................................................................................7 Estrutura de bloco.........................................................................................................7 Estrutura de deciso simples ........................................................................................7 Estrutura de deciso multipla ......................................................................................7 Estruturas de repetio..................................................................................................8 Capitulo IV Instalao do Internet Information Server..................................................8 Instalao de IIS em Windows XP profissional...........................................................8 Acessar ao servidor web ..............................................................................................9 Ativando e Desativando o IIS em Windows XP profissional....................................10 Capitulo V Escolhendo uma ferramenta.......................................................................12 Apresentao do Delphi 2005.....................................................................................12 Escolhendo uma linguagem intermediria.................................................................13 Apresentao do Visual Studio 2005...............................................................................15 Escolhendo uma linguagem intermediria.................................................................15 Capitulo VII Conhecendo uma IL................................................................................17 A pgina de cdigos C# (Codificao para ferramenta DELPHI 2005). ..................17 A pgina de cdigos Delphi.NET (Codificao para ferramenta DELPHI 2005). . . .18 A pgina de cdigos C# (Codificao para ferramenta VISUAL STUDIO 2005). . .19 Projeto 01 Conhecendo objetos...............................................................................20 Projeto 02 Conhecendo objetos...............................................................................21 Projeto 03 Conhecendo objetos...............................................................................22 Projeto 04 Conhecendo objetos...............................................................................24 Projeto 05 Conhecendo objetos...............................................................................25 Capitulo VII Trabalhando com estruturas....................................................................26 Projeto 06 Tomando uma deciso simples..............................................................26 Projeto 07 Permitindo ou negando acesso a uma pgina.........................................28 Projeto 08 Montando um menu...............................................................................31 Projeto 09 Ampliando uma imagem........................................................................35 Capitulo VIII Trabalhando com bases de dados...........................................................39 Projeto 11 Testando a existncia e a senha de um usurio .....................................43 Projeto 12 Um menu Animado! ..............................................................................48 Projeto 13 Incluindo, excluindo e alterando dados em uma tabela Mtodo I Utilizando o Borland Data Provider............................................................................52 Projeto 14 Incluindo, excluindo e alterando dados em uma tabela Mtodo II Utilizando Data Components.......................................................................................55
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 2 de 60
Capitulo I Definies1. Sistema Operacional Conjunto de pequenos softwares capazes de controlar as diversas funes de um hardware. Exemplos: WINDOWS, LINUX, DOS, UNIX... etc 2. Linguagem Conjunto de cdigos capazes de descrever uma ao a ser realizada por um processador ou sistema computacional. 3. Aplicaes Todo desenvolvimento baseado em uma linguagem desenvolvido para um nico fim.
a) Aplicaes ASP.NET: Aplicaes baseadas em HTML dinmico gerados atravs deconsultas a Bases de Dados armazenados em servidores.
b) Aplicaes Web Services: Aplicaes com procedimento remoto desenvolvidas parainternet, utilizando XML como mensagem de comunicao e HTTP ou HTTPs como meio de comunicao.
c) Aplicaes Console: Aplicaes que no necessitam de interface grfica ouinteratividade com o usurio, este tipo de aplicao roda sob o comando do sistema operacional. 4. CGI (Common Gatway Interface) Tecnologia da Web onde um servidor recebe solicitaes em HTML, executa os processos necessrios e devolve aos clientes novamente no formato HTML;
5. 6.
.NET Tecnologia da Microsoft para desenvolvimentos de Web Services; CLR (Common Language Runtime) Ambiente de tempo de execuo que fornece os servios necessrios a todas as aplicaes .NET (compilao, gerenciamento de memria e garbage collection); 7. Assemblies Comandos compilados para assembler disponveis na web para utilizao em CLR; 8. Biblioteca de classes Conjunto de assemblies distribudos em classes de acordo com suas funcionalidades; 9. ASP.NET (Active Server Pages) Tecnologia da Microsoft baseada em servidor que permite desenvolvimentos de pginas Web dinmicas e interativas; 10. ADO.NET (Activex Data Object) Tecnologia .Net que permite aos desenvolvedores criar aplicaes para vrias origens de dados; 11. VCL for .NET (Visual Component Library) Tecnologia Borland que permite aos desenvolvedores criar aplicaes Web integrando as tecnologias ADO.NET e ASP.NET; 12. Web Services
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 3 de 60
So chamadas de procedimento remoto feitas na internet utilizando XML como formato de mensagem de comunicao e http/HTTPs como meio de comunicao; 13. RPC (Remote Procedure Calls) Chamada de Procedimento Remoto (internet) atravs de um protocolo de comunicao; 14. Protocolo http (HiperText Markup Language) Linguagem de programao usada para criar uma pgina Web 15. XML (Extensible Markup Languagem) Linguagem de formato flexvel baseada em texto para publicao por meios eletrnicos, utilizada na passagem de mensagens entre clientes do Web Service; 16. SOAP (Simple Object Access Protocol) Protocolo para Web Service baseado no padro XML utilizado para invocar chamadas de RPC; 17. WSDL (Web Service Description Language) Linguagem baseada em XML utilizada para descrever os recursos de um Web Service; 18. UDDI (Universal Description, Discovery and Integration) um registro pblico para armazenamento de informaes sobre e para publicao de Web Services; 19. Servidor Equipamento onde esta armazenada uma soluo de Web Service; 20. Cliente Cada um dos usurios de uma soluo de Web Service; 21. Plataforma (Windows, Linux, etc) Base estrutural sobre a qual ser aplicada a soluo de Web Service; 22. Ferramenta de desenvolvimento (Delphi, Visual Studio) Aplicativo utilizado para desenvolvimento da soluo de Web Service;
23.
Linguagem Intermediria IL (Delphi.NET(pascal), C#, Visual Basic) a linguagem utilizada como fonte para o desenvolvimento de Web Service. A microsoft resolve denominar as ILs como MSIL (Microsoft Intermediate Language); Observaes:
d)
O .NET suportado por mais de 20 linguagens;
e) Existem muitos componentes reutilizveis de terceiros disponveis na internet, pesquise no google .NET Components
f)
O W3C (World Wide Consortium) uma agncia reguladora sem fins lucrativos, onde se encontram especificaes, diretrizes, softwares e ferramentas relevantes ao uso da World Wide Web (www.w3c.org). g) Outras tecnologias WEB:
JSP (Java Server Page); PHP (Personal Home Page); Cold Fusion; ISAPI; NISAPI; IDC/HTX.
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 4 de 60
Capitulo II O ASP.NETIntroduo ASP.NET (Active Server Pages.NET) compe a forma de se criar pginas da Internet utilizando-se a plataforma .NET. Esta plataforma prov uma srie de servios, atravs de classes existentes no Microsoft .NET Framework. Com ele, possvel a construo no apenas de pginas Web, mas tambm, de aplicativos desktop, aplicativos para dispositivos mveis, objetos de negcios, web services, etc. Pode-se dizer que a plataforma .NET similar plataforma Java, que tambm oferece diversos servios. Dentre suas principais diferenas, destacam-se as seguintes caractersticas: a plataforma Java utiliza a linguagem de programao Java e seus aplicativos so hbridos (compilados e interpretados, caracterstica que permite que os aplicativos sejam multi-plataforma); enquanto que em .NET, pode-se utilizar Visual Basic.NET, C++, JScript.NET, Delphi.NET ou C#, e os aplicativos gerados so compilados em uma linguagem chamada MSIL (Microsoft Intermediate Language). No caso das pginas ASP.NET, sua compilao realizada no momento em que elas so chamadas pela primeira vez atravs do browser, que apresenta o contedo final em HTML (Hypertext Markup Language). A execuo de pginas ASP.NET requer a utilizao do IIS (Internet Information Server), alm da instalao do .NET Framework SDK. As pginas ASP.NET podem ser escritas utilizando-se editores de textos planos, tal como Bloco de Notas e Vi. Porm, existem vrias ferramentas que auxiliam o desenvolvimento de pginas ASP.NET. Algumas das ferramentas de maior destaque so: - Microsoft ASP.NET Web Matrix - um software especfico para construo de aplicativos para a Web que utilizam a plataforma .NET. bastante leve (1,3 Mb), apesar de prover muitos recursos de desenvolvimento. uma ferramenta gratuita, podendo ser baixada em http://www.asp.net/webmatrix/. - Macromedia Dreamweaver MX seguindo a tradio de suas verses anteriores, este software suporta vrias tecnologias (ASP, ASP.NET, JSP, PHP, CSS, Java, XML, entre outras). Uma verso para teste pode ser encontrada em http://www.dreamweaver.com. - Microsoft Visual Studio .NET considerado pela Microsoft, o seu principal ambiente de desenvolvimento, suportando a criao de solues baseadas na plataforma .NET, incluindo-se aplicativos desktop, ASP.NET, web services, classes, aplicativos para dispositivos mveis, entre outros. Sua pgina na Internet http://msdn.microsoft.com/vstudio/. - Delphi for .NET ambiente de desenvolvimento integrado da Borland para construo de aplicaes .NET ou desktop,ambas com viso ALM (Application Lifecycle Desenvelopment), que acompanha todo o ciclo de vida da aplicao. Sua pgina na internet http://www.borland.com. ASP.NET, HTML, C# e DELPHI.NET As pginas ASP.NET produzem arquivos de extenso .aspx. Normalmente, elas so divididas em duas sees principais: HTML e uma linguagem intermediria-IL (C Sharp representado por C#, Delphi.NET(pascal), Visual Basic). Assim, o cdigo IL colocado dentro do elemento script, antes do cdigo HTML propriamente. necessrio ainda, que seja explicitada a linguagem que est sendo utilizada, o que feito com uso da diretiva Page Language, que adicionada no incio do cdigo da pgina. Um exemplo simples de uma pgina ASP.NET o seguinte:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 5 de 60
1 2 3 4 5 6
void limpar(object sender, EventArgs e) { Label2.Text = " "; }
CODIGO ASP.NET
7 CODIGO HTML 8 9 10 11 Pgina de 12 Exemplo 13 Esta uma pgina de exemplo, onde exemplificada 14 a diviso entre o cdigo HTML e ASP.NET 15 16 17 18 19
Nota-se, que o elemento script possui um atributo runat, que possui o valor server. Isto significa que todo o contedo deste elemento estar sendo executado no servidor. Isto necessrio pelo fato de ser o servidor, o lugar onde est instalado o .NET framework (o cliente no necessariamente o ter instalado). As linguagens C# e Delphi.NET possuem algumas caractersticas prprias, porm suas estruturas sob do ponto de vista lgico so semelhantes. A Code Gear atual detentora do Delphi resolve chamar de Delphi.NET a codificao PASCAL, portanto para fins didticos, tambm o farei. Operadores de atribuio, comparao e lgicos Operador Atribuio Comparao Diferente Menor que Maior que Menor ou igual Maior ou igual E (lgico) Ou (lgico) No (lgico) No exclusivo Operadores de aritmticos Operador Adio Subtrao Multiplicao Diviso simples Diviso de inteiro Mdulo Potenciao Delphi.NET + * / div mod No existe C# + * / / % ^ Delphi.NET := = < > = and or not xor C# = == != < > = && || ! ^
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 6 de 60
Operadores de incremento e decremento Operador Incremento Decremento Contadores Operador Contador Tipos/Variveis Tipo Inteiro de 8 bits com sinal Inteiro de 8 bits sem sinal Inteiro de 16 bits com sinal Inteiro de 16 bits sem sinal Inteiro de 32 bits com sinal Inteiro de 32 bits sem sinal Inteiro de 64 bits com sinal Inteiro de 64 bits sem sinal Flutuante simples Flutuante duplo Decimal fixo Monetrio Data/hora Variante Caracter de 1 byte Caracter de 2 bytes String fixo String dinmica de 1 byte String dinmica de 2 byte Booleano Tipos Vetores Array Definido pelo usurio Delphi.NET X: array[a..n] of tipo Exemplo: X:Array[0..7] of string; X: array of tipo Obs: utilize SET LENGTH( ) para alocar memria ao array Exemplo: X array of string; Set length(X,30); C# Tipo X[n] Exemplo: int X[8]; No definido Delphi.NET ShortInt Byte Smallint Word Integer Cardinal Int64 Uint64 Single Double No existe Currency TDateTime Variant, OleVariant Ansichar Char, WideChar ShortString AnsiString String, WideString Boolean C# sbyte byte short ushort int uint long ulong float double decimal No existe No existe No existe No existe char No existe No existe string bool Delphi.NET x:= x+ n C# x+=n Delphi.NET Inc( ) Dec( ) C# ++ --
Dinmicos
Registros Por definio a chamada de registros tanto em Delphi.NET como em C#, se d atravsde estruturas. Delphi.NET C#
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 7 de 60
Type Public struct MyRec MyRec = record { I : Integer; int I; d: Double; double d; end; } Obs: Ao se trabalhar com um registro use um ponto para acessar seus campos Exemplo: Var N: MyRec; begin N.i :=23; N.d := 3.4; end;
Capitulo III Estruturas lgicasPARA FINS DIDTICOS USAREI A SEGUINTE CONVENO: Definio Comando (palavra reservada no pode ser substituda) Texto livre (termos digitados pelo usurio) Estilo do texto Negrito, vertical Texto normal, itlico Exemplo begin Comando n
Estruturas As estruturas so comandos que possuem um incio, um corpo e um fim, onde o corpo pode conter outros comandos ou estruturas. Estrutura de bloco Utilizada para agrupar comandos. Lgica Comeo aqui so colocados comandos da estrutura fim Delphi.NET begin aqui so colocados comandos da estrutura end C# { aqui so colocados comandos da estrutura }
os
os
os
Estrutura de deciso simples A estrutura de deciso simples permite ao processador desviar o fluxo da aplicao em funo de uma deciso lgica condicionada. Lgica Se condio ento comeo comandos executados se a condio for verdadeira fim seno comeo comandos executados se a condio no for verdadeira fim Delphi.NET if condio then begin comandos executados se a condio for verdadeira end else begin comandos executados se a condio no for verdadeira end; C# If condio { comandos executados se a condio for verdadeira } else { comandos executados se a condio no for verdadeira }
Estrutura de deciso multipla A estrutura de deciso multipla permite ao processador desviar o fluxo da aplicao em funo de diversas decises lgicas condicionadas a uma nica questo. Lgica Caso varivel faa Caso 1: comandos Delphi.NET case varivel of C# switch (varivel) {
Delphi 2005 Delphi.NetCaso 2: comandos Caso n: comandos Fim do caso
Visual Studio 2005 C#1: begin comandos end; 2: begin comandos end; n: begin comandos end; else: begin comandos end; endcase;
Fbio Jos de Gondra Ramos Pgina 8 de 60
case 1: comandos; break; case 2: comandos; break; case n:comandos; break; default: comandos; }
Estruturas de repetio As estruturas de repetio criam blocos de comandos que se repetem de forma controlada. Lgica Comando ENQUANTO: Enquanto condio faa Comece Comandos Fim do enquanto Comando CONTE: Conte varivel de valor 1 at valor 2 faa comece comandos fim Delphi.NET while condio do begin comandos; end; for var:=val1 to val2 do begin Comandos; end; C# while (condio) { comandos; } for (int var=val1;i>valor; i++) { Comandos; }
Como o objetivo principal demonstrar ao leitor as tcnicas para programao Web utilizando-se da ferramenta Delphi 2005, trataremos cada exemplo abordado, nas duas linguagens (Delphi.NET (Delphi Net) e C# (ASP.Net), sempre com a imparcialidade necessria.
Capitulo IV Instalao do Internet Information ServerDurante a instalao do Delphi 2005 ou do Microsoft Visual Studio 2005 so solicitados alguns prerequesitos sem os quais no se poderia desenvolver aplicaes para Web, dentre os quais um servidor de acessos. Para controle de acesso a internet utilizaremos o IIS (Internet Information Server) da Microsoft. Instalao de IIS em Windows XP profissional Internet Information Server (IIS) o servidor de pginas web avanado da plataforma Windows. Distribui-se gratuitamente junto com as verses de Windows baseadas em NT (Windows 2000 e Windows XP). IIS pode ser encontrado no prprio CD de instalao de Windows XP Profissional. Temos que acessar a opo de "Instalar componentes opcionais de Windows" para poder carreg-lo em nosso sistema. Para isso temos duas opes: 1) Inserir o CD de instalao de Windows e na janela que se mostra para dar o arranque, selecionar a opo que pem "Instalar componentes opcionais de Windows"
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 9 de 60
2) No Painel de controle, selecionar a opo de "Adicionar ou remover programas" e na janela que sai, clicar sobre o cone da esquerda marcado como "Selecionar ou remover componentes de Windows".
Agora nos mostra a janela para selecionar os componentes adicionais de Windows que esto disponveis. Na lista, marquei a opo "Servios de Internet Information Server (IIS)". Por padro se selecionam alguns componentes, dentro dos que oferece a instalao de IIS. Ns podemos escolher que componentes desejei instalar apertando o boto marcado como "Detalhes". Entre os possveis componentes se encontram as extenses de Frontpage, documentao, servios adicionais de IIS, um servidor de FTP (para a transferncia de arquivos com o servidor por FTP), inclusive de SMTP (para o envio de correios eletrnicos).
Uma vez instalado os componentes desejados, podemos apertar o boto de "Seguinte" para comear a instalao, que demorar uns minutos. Acessar ao servidor web Podemos acessar ao servidor web para comprovar se foi instalado corretamente IIS. Para isso, simplesmente devemos escrever http://localhost em Internet Explorer e dever aparecer uma pgina
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 10 de 60
web informando que IIS est corretamente instalado. Alm disso, aparecer a documentao de IIS em uma janela emergente, se tiver sido instalada.
Ativando e Desativando o IIS em Windows XP profissional Quando o IIS estiver parado, isto o servio no foi iniciado ou foi interrompido por um motivo qualquer, torna-se impossvel a exibio de pginas a partir de determinados servidores, surgindo a seguinte tela:
Para ativar o IIS proceda conforme descrito: Clique em iniciar; Painel de controle; Ferramentas administrativas; Internet Information Services.
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 11 de 60
Status do IIS
Selecione o Servidor virtual SMTP (padro)
Inicializa o IIS
Para iniciar ou reinicializar o administrador do IIS e os servios dependentes deste proceda da seguinte forma: Clique em iniciar; Painel de controle; Ferramentas administrativas; Servios; Servios de Administrao do IIS.
Ao se reiniciar os Servios de administrao do IIS, os servios de publicao na Web, SMTP e FTP tambm sero reiniciados.
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 12 de 60
CapituloApresentao do Delphi 2005 Tela de Abertura
V Escolhendo uma ferramenta
Mdulos carregados
Aps o carregamento dos mdulos o delphi mostrar a sua tela inicial, atravs da qual definiremos que tipo de aplicativo faremos e com qual linguagem intermediria iremos trabalhar.
Menu Principal Barra de ferramentas Regio de estrutura Gerente de projeto Configurao de objetos Paleta de componentes
Uma vez carregado o Delphi definiremos o tipo do aplicativo que queremos desenvolver:
1. Menu Principal: Regio onde so mantidos os comandos do delphi referentes a:a. File (arquivo): Operaes com arquivos (novo, abrir, salvar, fechar, sair); b. Edit (editar): Realiza operaes de copia, colagem, excluso, desfazer, refazer e seleo;
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 13 de 60
2. 3. 4. 5.
c. Search (procura): Operaes de busca e troca; View (visualiza): Promove a visualizao de janelas, formulrios, units e helps; e. Refactor: Operaes de renomeao, localizao, declaraes de variveis; f. Project: Operaes de incluso, excluso, compilao de Units; g. Run (executar): Executa, compila projetos; h. Component (componentes): Instala e habilita componentes ou pacotes; i. Tools (ferramentas): Executa aplicativos externos ao delphi; j. Star Team (equipe estrela): Define um grupo para desenvolvimento comum; k. Window (janela): Permite o controle de janelas; e l. Help (ajuda): Chama arquivos de ajuda. Structure: Aponta para as estruturas (procedimentos, bibliotecas, variveis), existentes em um projeto; Object inspector: Descreve as propriedades e os eventos dos objetos utilizados em um projeto; Project Manager: Aponta para todas as pginas anexadas ao projeto; Tool palete: Paleta de componentes, armazena todos os objetos disponveis para utilizao no projeto. d.
Escolhendo uma linguagem intermediria A deciso para definio da linguagem a ser empregada em um projeto delphi ocorre no momento da sua criao. Clique na opo File; Selecione New;
Cria aplicao Web com C# Cria aplicao Web com Delphi.NET
Para montar a aplicao usando C# como IL: Escolha a opo: File... New... ASP.NET Web Application C#Builder
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 14 de 60
Aps escolher a opo acima devemos indicar o diretrio onde ser armazenada a aplicao:
NameSpace da aplicao Diretrio da aplicao Servidor da aplicao
Para montar a aplicao usando Delphi.Net como IL: Escolha a opo: File... New... ASP.NET Web Application Delphi for .Net
Para ambas linguagens o delphi far os mesmos questionamentos a respeito do projeto a ser criado, solicitando o nome para aplicao, o local onde sero armazenadas as pginas e qual o servidor a ser utilizado. A figura a seguir demonstra tal questionrio.
Indica o nome para aplicao Indica o local para as pginas Indica qual o servidorQuando no se menciona um nome para a aplicao o delphi sugerir o nome padro WebApplication acompanhado do nmero seqencial das pastas contidas na pasta padro C:\netpub\wwwroot\.
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 15 de 60
Apresentao do Visual Studio 2005 Tela de Abertura
Menu principal Barra de ferramentas Pgina inicial Lista dos ltimos projetos
rea de desenvolvimento
Uma vez carregado o Visual Studio definiremos o tipo do aplicativo que queremos desenvolver: Menu Principal: Regio onde so mantidos os comandos do Visual Studio referentes a: a. File (arquivo): Operaes com arquivos (novo, abrir, salvar, fechar, sair); b. Edit (editar): Realiza operaes de copia, colagem, excluso, desfazer, refazer e seleo; c. View (visualiza): Promove a visualizao de janelas, formulrios, codes e helps; d. Tools (ferramentas): Habilita ferramentas de apoio ao visual studio; e. Window (janela): Permite o controle de janelas; f. Comunity: (comunidade): Permite contato com comunidades web do visual studio; e g. Help (ajuda): Chama arquivos de ajuda. Escolhendo uma linguagem intermediria A deciso para definio da linguagem a ser empregada em uma aplicao do Visual Studio ocorre no momento da sua criao. Clique na opo File; Selecione New;
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 16 de 60
Cria um novo projeto local Cria uma novo projeto web Cria uma novo modelo de arquivo
Como o foco deste estudo a programao web escolheremos a opo Web Site
Cria uma novo site de web com ASPNET Cria o local onde estar o site
Indica a linguagem intermediria
Uma vez definido que tipo de aplicativo e com qual linguagem intermediria iremos trabalhar o visual studio abre o formulrio para confeco do site.
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 17 de 60
Caixa de ferramentas (objetos) Lista todos as pginas da aplicao Mostra as propriedades e eventos dos objetos Mostra o formulrio (desenho) Mostra o cdigo ASP
Capitulo VII Conhecendo uma ILComo mencionei anteriormente uma IL (linguagem intermediria), a linguagem responsvel pelo dinamismo empregado s pginas web, quebrando-se assim o fator esttico do HTML. Para fins didticos e com o objetivo de mostrar ao usurio que a melhor IL aquela que voc escolheu para se aperfeioar apresentarei todos os exemplos em C# com a ferramenta Visual Studio 2005 e Delphi.NET com a ferramenta Delphi 2005, procurando da melhor forma possvel traar um paralelo entre elas de forma a torn-las acessveis ao leitor. Crie uma pasta na unidade C: e chame de WebCurso, em seguida abra a pasta C:\WebCurso e crie mais duas pastas: uma denominada CSharp e a outra DelphiNET. Assim todos os exemplos feitos com C# ficaro armazenados em C:\WebCurso\CSharp, bem como os exemplos feitos com Delphi.NET ficaro armazenados em C:\WebCurso\DelphiNET. Todos os exemplos apresentaro a mesma interface grfica tendo diferente apenas a sua parte literal. A pgina de cdigos C# (Codificao para ferramenta DELPHI 2005). Usando C#, tem-se: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
}
Bibliotecas
namespace UsandoC { /// /// Summary description for WebForm1. ///
Identificao da pgina
Delphi 2005 Delphi.Netpublic {
Visual Studio 2005 C#class WebForm1 : System.Web.UI.Page
Fbio Jos de Gondra Ramos Pgina 18 de 60
Declarao da pgina na webprotected System.Web.UI.WebControls.Button button1; protected System.Web.UI.WebControls.Label label1; protected System.Web.UI.WebControls.Label label2;
}
Declarao dos objetos usados quando
private void Page_Load(object sender, System.EventArgs e) { Comandos executados // Put user code to initialize the page here } a pgina carregada
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { Comandos executados quando // // CODEGEN: This call is required by the ASP.NET Web Form Designer. o componente inicializado // InitializeComponent(); base.OnInit(e); } /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { Declarao de procedimentos this.button1.Click += new System.EventHandler(this.button1_Click); this.Load += new System.EventHandler(this.Page_Load); por objetos } inicializados #endregion private void button1_Click(object sender, System.EventArgs e) Aps #endregion deve-se { descrever os procedimentos label1.Text=label2.Text; utilizados na pgina. } } } A pgina de cdigos Delphi.NET (Codificao para ferramenta DELPHI 2005). Usando Delphi.NET, tem-se: unit WebForm1; interface uses System.Collections, System.ComponentModel, System.Data, System.Drawing, System.Web, System.Web.SessionState, System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls; type TWebForm1 = class(System.Web.UI.Page) {$REGION 'Designer Managed Code'} strict private procedure InitializeComponent;
Declarao da pgina
}
B ib lio te c a
Declarao de procedimentos inicializados por objetos
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 19 de 60
procedure Button1_Click(sender: System.Object; e: System.EventArgs); {$ENDREGION} strict private procedure Page_Load(sender: System.Object; e: System.EventArgs); strict protected Button1: System.Web.UI.WebControls.Button; Label1: System.Web.UI.WebControls.Label; Declarao dos objetos Label2: System.Web.UI.WebControls.Label; procedure OnInit(e: EventArgs); override; usados private { Private Declarations } Declarao de variveis privadas public { Public Declarations } Declarao de variveis privadas end;
}
implementation {$REGION 'Designer Managed Code'} Aps implementation deve-se /// descrever os procedimentos /// Required method for Designer support -- do not modify utilizados na pgina. /// the contents of this method with the code editor. /// procedure TWebForm1.InitializeComponent; begin Include(Self.Button1.Click, Self.Button1_Click); Include(Self.Load, Self.Page_Load); end; {$ENDREGION} procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here Comandos executados quando a pgina carregada end; procedure TWebForm1.OnInit(e: EventArgs); begin // // Required for Designer support // InitializeComponent; inherited OnInit(e); end;
Declarao de procedimentos inicializados por objetos
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin Label1.Text:=Label2.Text; end; end. A pgina de cdigos C# (Codificao para ferramenta VISUAL STUDIO 2005). Usando C#, tem-se: using using using using System; System.Data; System.Configuration; System.Web;
}
Bibliotecas
Delphi 2005 Delphi.Netusing using using using using
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 20 de 60
System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }
Comandos executados quando a pgina carregada
Projeto 01 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. A parte visual do projeto a mesma tanto para o Visual Studio como para Delphi, apenas a parte literal (codificao) ser especfica. A Pagina:
Ajuste dos objetos: Neste primeiro exemplo usei um objeto Panel e trs objetos Button, o efeito desejado alterar a cor do panel mediante um click sobre o boto desejado. No Delphi 2005 este ajuste feito no Object Inspector No Visual Studio 2005 este ajuste feito no ToolBox Delphi Paleta Visual Studio Paleta Objeto Button1 WebControls Standard Button2 Button3 Panel1 Terminada a confeco da pgina necessrio escrever os procedimentos na pgina de codificaes utilizando a IL escolhida: Escrevendo cdigos em C# (Visual Studio): protected void Amarelo_Click(object sender, EventArgs e) { Propriedade Text ID Text ID Text ID Valor Amarelo Amarelo Vermelho Vermelho Azul Azul Evento Amarelo_Click Vermelho_Click Azul_Click
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 21 de 60
Panel1.BackColor = System.Drawing.Color.Yellow; } protected void Vermelho_Click(object sender, EventArgs e) { Panel1.BackColor = System.Drawing.Color.Red; } protected void Azul_Click(object sender, EventArgs e) { Panel1.BackColor = System.Drawing.Color.Blue; } Escrevendo cdigos em Delphi.NET (Delphi): procedure TWebForm1.Azul_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Blue; end; procedure TWebForm1.Vermelho_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Red; end; procedure TWebForm1.Amarelo_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Yellow; end; OBSERVAES: - Note a presena da biblioteca System.Drawing, que responsvel pela liberao do mtodo color tanto no Delphi como no Visual Studio. A incluso da biblioteca System.Drawing na clausula USES do Delphi, ou na clausula USING do Visual Studio, promovera uma reduo na linha de cdigo dos comando clicks executados. procedure TWebForm1.Amarelo_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := Color.get_Yellow; end; Projeto 02 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto dropdownlist, trs objetos label e um objeto button, o efeito desejado identificar a opo selecionada no dropdownlist e transferir para os labels o item selecionado e o seu valor correspondente mediante um click sobre o boto. A pgina:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 22 de 60
Delphi Paleta
Visual Studio Paleta
ObjetoLabel1 Label2 Label3
PropriedadeText ID Text ID Text ID Membros
ValorIndique uma opo: Itemlido Item: Valorlido Valor: Opcoes Propriedades Text Value Opo 01 Valor 01 Opo 02 Valor 02 Opo 03 Valor 03 Ler item
Evento
WebControls
Standard Dropdownlist1
Items
Opo 01 Opo 02 Opo 03
Button1
Text
Button1_Click
Escrevendo cdigos em C# (Visual Studio): protected void Button1_Click(object sender, EventArgs e) {Itemlido.Text = "Opo selecionada:" + Opcoes.SelectedItem.ToString(); Valorlido.Text = "Valor correspondente:" + Opcoes.SelectedValue;
} Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin itemlido.Text := 'Opo selecionada:' + opcoes.SelectedItem.ToString; valorlido.Text := 'Valor correspondente:' + opcoes.SelectedValue; end; Exerccio 01 Monte uma aplicao capaz de alterar a cor de um objeto panel, baseado-se no valor contido em um dropdownlist. Projeto 03 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto label, dois objetos textbox e dois objetos button, o efeito desejado mostrar a diferena entre as operaes de soma de valores numricos (inteiros) e valores literais (strings) mediante um click sobre o boto especfico. A pgina:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 23 de 60
Delphi Paleta
Visual Studio Paleta
Objeto Label1 Label2 Label3
WebControls
Standard
Button1 Button2 TextBox1 TextBox2
Propriedade Text Text Text ID Text Text ID ID
Valor 1 valor: 2 valor: Resultado Resultado Soma como inteiro Soma como literal Valor1 Valor2
Evento
Button1_Click Button2_Click
Neste exemplo tive a necessidade de criar 03 (trs) variveis do tipo inteiro, observe as diferentes formas de criao das variveis privadas entre as linguagens C# e Delphi.NET. Criando as variveis em C# (Visual Studio): public partial { private int a private int b private int c class _Default : System.Web.UI.Page = 0; = 0; = 0;
Criando as variveis em Delphi.NET (Delphi.NET): private { Private Declarations } var a,b,c:integer; Escrevendo cdigos em C# (Visual Studio): protected { try { a b c void Button1_Click(object sender, EventArgs e)
= Convert.ToInt32(Valor1.Text); = Convert.ToInt32(Valor2.Text); = a + b;
Resultado.Text = "O resultado a soma do 1 valor com o 2 valor: " + c.ToString();
} catch { Resultado.Text = "Voce digitou um caracter que no pode ser convertido para inteiro!"; }
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 24 de 60
} protected void Button2_Click(object sender, EventArgs e) { Resultado.Text = "O resultado a unio do 1 valor com o 2 valor: " + Valor1.Text + Valor2.Text; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin try a := convert.toint32(valor1.Text); b := convert.toint32(valor2.Text); c := a + b; resultado.Text := 'O resultado a soma do 1 valor com o 2 valor:' + c.ToString; except resultado.Text := 'Voce digitou um caracter que no pode ser convertido para inteiro!'; end; end; procedure TWebForm1.Button2_Click(sender: System.Object; e: System.EventArgs); begin resultado.Text := 'O resultado a unio do 1 valor com o 2 valor:' + valor1.Text + valor2.Text; end; Projeto 04 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto radiobuttonlist, um objeto image e um objeto button, o efeito desejado carregar uma imagem baseada no valor contido no radiobuttonlist mediante um click sobre o boto aplicar. A pgina:
Delphi Paleta
Visual Studio Paleta
Objeto Image1 Button1
Propriedade Text ID ID
Valor Aplicar Aplicar voar Membros Propriedades Text Value Voa Voaparadireita.gif para direita Voa Voaparaesquerda.gif para esquerda
Evento Aplicar_Click
WebControls
Standard Radiobutonlist1 Items
Voa para direita Voa para esquerda
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 25 de 60
Escrevendo cdigos em C# (Visual Studio): protected void Aplicar_Click(object sender, EventArgs e) { Image1.ImageUrl = "~/" + Voar.SelectedValue; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); begin Image1.ImageUrl := './' + Voar.SelectedValue.ToString; end; Projeto 05 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei cinco objetos labels, cinco objetos textboxs, um objeto button, um objeto requiredfieldvalidator, um objeto comparevalidator, dois objetos regularexpressionvalidators e um objeto rangevalidator, o efeito desejado validar entradas mediante um click sobre o boto validar. A pgina:
Delphi Paleta WebControls
Visual Studio Paleta
Standard
Objeto Label1 Label2 Label3 Label4 Label5 Button1 Textbox1 Textbox2 Textbox3 Textbox4 Textbox5 RequiredFieldValidator1
Propriedade Text Text Text Text Text Text ID ID ID ID ID ErrorMessage Controltovalidate ErrorMessage Controltovalidate Operator Type Valuetocompare ErrorMessage
Validation
CompareValidator1
RegularExpressionValidator1
Valor Nome: Quantidade: CEP: Site: Pedidos: Validar Nome Qtdade CEP Site Pedidos (Campo Obrigatrio) Nome Quantidade Excede de 500 Qtdade LessThan Integer 500 Digite 99999-
Evento
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 26 de 60
Controltovalidate Validationexpression ErrorMessage RegularExpressionValidator2 Controltovalidate Validationexpression ErrorMessage RangeValidator1 Controltovalidate Maximumvalue Minimumvalue Type
999 CEP \d{5}(-\d{3})? Endereo URL Invlido: digite http://..... Site http://([\w-]+\.) +[\w-]+(/ [\w./? %&=]*)? Pedido mnimo 1 e mximo 5 Pedidos 5 1 Integer
Escrevendo cdigos em C# (Visual Studio): Nenhum cdigo descrito Escrevendo cdigos em Delphi.NET (Delphi.NET): Nenhum cdigo descrito
Capitulo VII Trabalhando com estruturasConforme mencionei anteriormente, as estruturas so comandos que possuem um incio, um corpo e um fim, onde o corpo pode conter outros comandos ou estruturas. Elas visam agrupar comando de forma a exercer um controle maior sobre estes. Tomando uma deciso simples A tomada de deciso simples uma operao lgica/relacional onde se tem apenas duas respostas possveis: verdade ou falsidade, a depender da sua escolha uma srie de comandos sero executados enquanto outra serie ser desprezada. Organizao lgica: Se (condio for verdadeira) ento
} }
Comandos executados se condio for verdadeira
Seno Comandos executados se condio for falsa
Projeto 06 Tomando uma deciso simples O objetivo deste exemplo verificar se o valor digitado pelo usurio igual a uma constante imbutida nas linhas de cdigo do exemplo. Neste exemplo usei trs objetos labels, dois objetos textboxs e um objeto button, o efeito desejado validar o usurio e sua senha mediante um click sobre o boto validar. A pgina:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 27 de 60
Delphi Paleta
Visual Studio Paleta
Objeto Label1 Label2 Label3
WebControls
Standard
TextBox1 TextBox2
Propriedade Text Text Text Visible ID MaxLength ID
Valor
Evento
Usurio: Senha:Resultado False Usurio: 10
Button1
Maxlength TextMode Text ID
Senha 6 Password Validar Validar
Validar_click
Escrevendo cdigos em C# (Visual Studio): protected void Validar_Click(object sender, EventArgs e) { if (Usuario.Text == "GONDRA") { if (Senha.Text == "DRAGON") { Resultado.Text = "Acesso permitido!"; } else { Resultado.Text = "Senha invlida!"; } } else { Resultado.Text = "Acesso negado!"; } Resultado.Visible = true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin if usuario.Text = 'GONDRA' then if senha.Text = 'DRAGON' then resultado.Text := 'Acesso permitido!' else resultado.Text := 'Senha invlida!' else resultado.Text := 'Acesso negado!';
Delphi 2005 Delphi.Net
Visual Studio 2005 C#resultado.Visible := true;
Fbio Jos de Gondra Ramos Pgina 28 de 60
end; Projeto 07 Permitindo ou negando acesso a uma pgina O objetivo deste exemplo verificar se o usurio tem permisso ou no para abrir uma nova pgina. Neste exemplo usei duas pginas: Na primeira coloquei dois objetos labels, um objeto dropdownlist e um objeto button, na segunda pgina coloquei apenas um label e um button. O efeito desejado permitir ou negar o acesso segunda pgina, de acordo com o valor selecionado no dropdownlist1 da primeira pgina validando assim o usurio mediante um click sobre o boto validar. A pgina 01:
Delphi Paleta
Visual Studio Paleta
Objeto Label1
Propriedade Text Text Font ID Visble Text ID
Label2
WebControls
Standard
Button1
Dropdownlist1
Items
ID
Valor Usurios: Acesso negado! Size Large Bold True Resultado False Validar Validar Propriedades Membros Text Value Gondra Gondra 0 Tio Tio 1 Zefa Zefa 2 Usuarios
Evento
Validar_click
Antes de incrementar o procedimento Validar_click, conveniente que voc adicione uma nova pgina a sua aplicao. Para adicionar uma nova pgina com Visual Studio:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 29 de 60
Escrevendo cdigos em C# (Visual Studio): private void validar_Click(object sender, System.EventArgs e) { if (Convert.ToInt32(Usuarios.SelectedValue) == 0) { Session["acesso"] = Usuarios.SelectedItem.ToString(); Response.Redirect("WebForm2.aspx"); } else { Resultado.Visible = true; } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin if convert.ToInt32(Usuarios.SelectedValue) = 0 then begin session['acesso'] := Usuarios.SelectedItem.ToString; response.Redirect('WebForm2.aspx'); end else Resultado.Visible := true; end; Para se anexar uma nova pgina a aplicao proceda da seguinte forma: Anexando uma pgina em aplicao C#: Click sobre: File New Other
Delphi 2005 Delphi.NetSelecione:
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 30 de 60
C#Projects New ASP.NET Files E escolha: ASP.NET Page
Anexando uma pgina em aplicao Delphi.NET (Delphi.NET): Click sobre: File New Other Selecione: Delphi for .Net Projects New ASP.NET Files E escolha: ASP.NET Page
A pgina 02:
Objeto Label1 Button1
Propriedade Text ID ID Text
Valor Usurio: acessado Retornar Retornar
Evento
Retornar_Click
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 31 de 60
Nesta pgina foi usado um procedimento especial denominado Page Load, que disparado sempre que a pgina carregada. O objetivo deste procedimento neste exerccio mostrar o nome do usurio selecionado na pgina anterior. Observe a presena do comando SESSION, este comando utilizado para transferir parmetros, alocando valores em uma varivel pblica, e a presena do RESPOSE.REDIRECT usado para redirecionar pginas. Escrevendo cdigos em C#: public class WebForm2 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Transferencia do nome do usuario acessado.Text = "Usurio:" + Session["acesso"].ToString(); } private void retornar_Click(object sender, System.EventArgs e) { Response.Redirect("webform1.aspx"); } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here acessado.Text:='Usurio:' + session['acesso'].ToString; end; procedure TWebForm2.Retornar_Click(sender: System.Object; e: System.EventArgs); begin response.Redirect('webform1.aspx'); end; Projeto 08 Montando um menu O objetivo deste exemplo promover a navegao entre pginas de uma aplicao baseando-se na escolha de uma opo de um menu. Neste exemplo usei 07 pginas: Na primeira coloquei quatro objetos buttons e dois objetos listboxs, nas demais pginas coloquei apenas um label e um button. O efeito desejado permitir o acesso as pginas, de acordo com o valor selecionado no listbox1 da primeira pgina mediante um click sobre o boto aplicar. A pgina 01:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 32 de 60
Objeto Button1
Button2 Button3 Button4
Propriedade Text ID Command Argument ID Text Command Argument ID Text ID Text ID
Valor Cadastros Cadastros 1 Consultas Consultas 2 Aplicar Aplicar Sair Sair Opccadastro Propriedades Membros Livros Almanaques Revistas Opcconsulta Propriedades Membros Livros Almanaques Revistas
Evento Cadastros_Click
Consultas_Click
Aplicar_Click Sair_Click
Listbox1
Items
Items Livros Almanaques Revistas
Value CadLivros.aspx CadAlmanaque.aspx CadRevistas.aspx
ID Listbox2
Items
Items Livros Almanaques Revistas
Value ConLivros.aspx ConAlmanaque.asp x ConRevistas.aspx
Dados para IL: IL C# Delphi.NET Application ASP.NET Web C#Builder Application Namespace cs08 pas08 DiretrioC:\WebCurso\CSharp\Exemplo08 C:\WebCurso\Delphi.NET\Exemplo08
ASP.NET Web Application Delphi for .NET
Escrevendo cdigos em C#: Obs: No esquea que as clausulas public class, Page_load e on_init j existem na pgina devemos apenas completar com o cdigo nescessario. public class WebForm1 : System.Web.UI.Page { // esta varivel identificar o menu que desejo abrir. private string escolha = ""; private void Page_Load(object sender, System.EventArgs e) {
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 33 de 60
// Put user code to initialize the page here Opccadastro.Visible = false; Opcconsulta.Visible = false; } private void Cadastros_Click(object sender, System.EventArgs e) { Session[menu] = Cadastros.CommandArgument; Opcconsulta.Visible = false; Opccadastro.Visible = true; } private void Consultas_Click(object sender, System.EventArgs e) { Session[menu] = Consultas.CommandArgument; Opccadastro.Visible = false; Opcconsulta.Visible = true; } private void Aplicar_Click(object sender, System.EventArgs e) { escolha = Session["menu"].ToString(); switch (escolha) { case "1": { Response.Redirect(Opccadastro.SelectedValue); break; } case "2": { Response.Redirect(Opcconsulta.SelectedValue); break; } } } private void sair_Click(object sender, System.EventArgs e) { Response.Close(); } }
Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here Opccadastro.Visible := false; Opcconsulta.Visible := false; end; procedure TWebForm1.sair_Click(sender: System.Object; e: System.EventArgs); begin Response.Close();
Delphi 2005 Delphi.Netend;
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 34 de 60
procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); var escolha:integer; begin escolha := Convert.ToInt16(Session['menu']); case escolha of 1: Response.Redirect(Opccadastro.SelectedValue); 2: Response.Redirect(Opcconsulta.SelectedValue); end; end; procedure TWebForm1.Consultas_Click(sender: System.Object; e: System.EventArgs); begin session['menu'] := Consultas.CommandArgument; Opccadastro.Visible := false; Opcconsulta.Visible := true; end; procedure TWebForm1.Cadastros_Click(sender: System.Object; e: System.EventArgs); begin Opcconsulta.Visible := false; Opccadastro.Visible := true; Session['menu'] := Cadastros.CommandArgument; end; As pginas 02 a 07: As pginas 02 at 07 possuem a mesma aparncia no entanto seus namespaces so diferenciados e precisam ser salvas. Para se anexar a pgina 02, proceda como no exerccio anterior. To logo tenha anexado a pgina 02 click em: File Save As... Em seguida: Localize o diretrio C:\WebCurso\CSharp\Exemplo08 se estiver desenvolvendo em C# ou C:\WebCurso\Delphi.NET\Exemplo08 se estiver desenvolvendo em Delphi.NET em seguida altere o nome de webform2.aspx para CadLivros.aspx Repita o processo para as seguintes pginas: CadAlmanaques.aspx; CadRevistas.aspx; ConLivros.aspx;
Delphi 2005 Delphi.Net
Visual Studio 2005 C#ConAlmanaques.aspx e
Fbio Jos de Gondra Ramos Pgina 35 de 60
ConRevistas.aspx A pgina:
Objeto
Propriedade Font.Bold Font.Size
Valor True Large Pgina CadLivros.aspx
Evento
Label1
Text ( O valor desta propriedade muda para cada pgina, conforme descrita ao lado)
CadAlmanaques.aspx CadRevistas.aspx ConLivros.aspx ConAlmanaques.aspx ConRevistas.aspx
Valor Cadastro de Livros Cadastro de Almanaques Cadastro de Revistas Consulta de Livros Consulta de Almanaques Consulta de Revistas Retorna_Click
Button1
ID Text
Retorna Retorna
Escrevendo cdigos em C#: private void button1_Click(object sender, System.EventArgs e) { Response.Redirect("webform1.aspx"); } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Button1_Click(sender: System.Object; e: System.EventArgs); begin Response.Redirect('webform1.aspx'); end; Projeto 09 Ampliando uma imagem O objetivo deste exemplo abrir uma nova pgina ampliando uma imagem contida em um imagebutton montado na pgina 01, a partir do click efetuado sobre o boto. Neste exemplo usei 02 pginas: Na primeira coloquei um label e um imagebutton e na segunda nenhum objeto colocado, apenas o evento page_load disparado O efeito desejado ampliar uma imagem contida em um imagebutton em uma nova pgina.
Delphi 2005 Delphi.NetA pgina 01:
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 36 de 60
Objeto Label1 ImageButton1
Propriedade Text Imageurl Width Height
Valor Obra de Antonio Canaletto Canaletto.JPG 50px 40px
Evento ImageButton1_Click
Escrevendo cdigos em C#: private void imageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e) { Response.Redirect("Canaletto.jpg"); } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.ImageButton1_Click(sender: System.Object;e:System.Web.UI.Image Click eventArgs); begin Response.Redirect('Canaletto.jpg'); end; Na segunda pgina no coloquei nenhum evento, apenas trabalhei na clausula class, criando uma varivel de memria baseada na classe System.Drawing.Image, responsvel pela verificao, converso carregamento de imagens do sistema e no evento page_load, que como j mencionei disparado quando a pgina carregada. Escrevendo cdigos em C#: public class WebForm2 : System.Web.UI.Page { // criao da varivel im que se comportar como um objeto tipo image public System.Drawing.Image im; private void Page_Load(object sender, System.EventArgs e) { // carrega a imagem do disco para a varvel imim = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"Canaletto.jpg");
} Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Page_Load(sender: System.Object; e: System.EventArgs); // TODO: Put user code to initialize the page here // criao da varivel im que se comportar como um objeto tipo image var im:System.Drawing.Image; begin // carrega a imagem do disco
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 37 de 60
im := System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+'Canaletto.jpg'); end; Exerccio 02 Monte uma aplicao capaz de ampliar a imagem de uma das obras contida na lista de obras de um dos artistas contido na listas de artistas, conforme esquema abaixo.
Artistas Antonio Cavaletto
Obras O Molhe A Ponte do Rialto As respigadeiras A primavera A arvore dos corvos
Jean-Franois Millet
Caspar David Friedrich
Soluo proposta: Para solucionar este exerccio existem diversas formas a depender da linha lgica escolhida pelo desenvolvedor. Eu resolvi utilizar dois labels, dois dropdownlists, dois buttons e um imagebutton. A pgina
Objeto Button1 Button2 DropDownList2 Label1 Label2
Propriedade Text ID ID Text ID Text Text ID
DropDownList1
Items
Valor Aplicar Aplicar Visualizar Visualizar Obras Autor: Obras: Autor Propriedades Membros Antonio Cavaletto JeanFranois Millet Caspar David Friedrich
Evento Aplicar_Click Visualizar _Click
Items Antonio Cavaletto JeanFranois Millet Caspar David Friedrich
Value Antonio Cavaletto Jean-Franois Millet Caspar David Friedrich
Delphi 2005 Delphi.NetID Imageurl Width Height
Visual Studio 2005 C#Miniatura Canaletto.JPG 60px 50px
Fbio Jos de Gondra Ramos Pgina 38 de 60
Miniatura _Click
ImageButton1
Escrevendo cdigos em C#:
public class WebForm1 : System.Web.UI.Page { // criao das variveis de ambiente public System.Drawing.Image im; public int escolha; private void miniatura_Click(object sender, System.Web.UI.ImageClickEventArgs e){im=System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+obras.SelectedItem.ToString()+".jpg");
Response.Redirect(obras.SelectedItem.ToString()+".jpg"); } private void visualizar_Click(object sender, System.EventArgs e) { miniatura.ImageUrl = obras.SelectedItem.ToString()+".jpg"; } private void Aplicar_Click(object sender, System.EventArgs e) { obras.Items.Clear(); escolha = autores.SelectedIndex; switch (escolha) { case 0: { obras.Items.Add("O Molhe"); obras.Items.Add("A Ponte do Rialto"); break; } case 1: { obras.Items.Add("As Respigadeiras"); obras.Items.Add("A primavera"); break; } case 2: { obras.Items.Add("A arvore dos corvos"); break; } } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.miniatura_Click(sender: System.Object;e:System.Web.UI.ImageClickEventArgs ); var
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 39 de 60
im:System.Drawing.Image; begin im := System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+obras.SelectedItem.ToString+'.jpg'); Response.Redirect(obras.SelectedItem.ToString+'.jpg'); end; procedure TWebForm1.visualizar_Click(sender: System.Object; e: System.EventArgs); begin miniatura.ImageUrl := obras.SelectedItem.ToString+'.jpg'; end; procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); begin obras.Items.Clear; case autores.SelectedIndex of 0:begin obras.Items.Add('O Molhe'); obras.Items.Add('A Ponte do Rialto'); end; 1:begin obras.Items.Add('As Respigadeiras'); obras.Items.Add('A primavera'); end; 2:begin obras.Items.Add('A arvore dos corvos'); end; end; end;
Capitulo VIII Trabalhando com bases de dadosUm dos objetivos do desenvolvimento de aplicaes Web poder trabalhar, (ler, incluir, excluir, atualizar), informaes armazenadas em servidores remotos. Para organizar estas informaes criam-se tabelas, onde, cada coluna apresenta suas caractersticas e reservada para guardar uma determinada informao. Assim, desta forma, se tivermos interesse de armazenar, por exemplo, o cpf de um cliente, seu nome, seu nascimento, seu peso, sua cidade, o cep e o estado criaremos a seguinte tabela:
Tabela de clientes: CPF 123.123.123-12 145.235.568-89 663.569.985-89 665.562.898-56 125.568.968-63 Note que: Nome Jose dos Santos Ana Fontes Jose dos Santos Ana Borges Antonio Bispo Nasciment o 20/01/1980 20/02/1986 14/05/1984 14/05/1984 18/12/1986 Peso 66 45 78 52 66 Cidade Cabrob Aracaju Aracaju Maca Aracaju Cep 50120-000 49056-120 48659-250 31120-000 49056-120 Estado PE SE AL RJ SE
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 40 de 60
Cada linha pertence a um determinado cliente; Existem valores que se repetem em determinadas colunas, porm as informaes armazenadas na coluna CPF no se repetem, isto , cada CPF pertence a um NICO cliente. As informaes armazenadas nas colunas CPF, Cep e Estado possuem um tamanho prdefinido; Na coluna peso seu preenchimento ser sempre numrico, na coluna estado ser sempre literal, o nascimento ser sempre uma data e as demais colunas podem receber tanto nmeros como literais. Com base nas notaes acima podemos concluir que as colunas possuem as seguintes caractersticas: Nome: Toda coluna possui um nome para identificao (CPF, Nome, Nascimento, Peso, Cidade, Cep e estado. Tipo: Toda coluna possui um tipo especfico. Tamanho: Toda coluna possui um tamanho mximo para armazenamento de informaes. Chave: Algumas colunas podero receber a identificao de chave de ndice o que lhe permite a unicidade dos dados. Nulao: Algumas colunas recebero um atributo que lhe permite permanecer sem valor mesmo aps a gravao dos dados. Observando as caractersticas acima podemos montar a estrutura responsvel pelo armazenamento de dados dos clientes, isto , a tabela de clientes: Chave Nome da coluna CPF Nome Nascimento Peso Cidade Estado Tipo da coluna Character Character Data Inteiro curto Character Character Tamanho da coluna 14 50 8 4 30 2 Aceita nulo
Para escrever tabelas para utilizao em web precisa-se de um tipo especial de aplicativo denominado SGBD (Sistema Gerenciador de Banco de Dados), Existem vrios SGBDs no mercado, todos eficientes capazes de administrar suas bases de dados e tabelas. Exemplos: MSSQL, MYSQL, Postgree, Oracle, etc... Para o nosso curso escolhi o MSSQL em sua verso 2000.
O MSSQL
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 41 de 60
Trata-se de um Sistema Gerenciador de Bancos de Dados, Relacionais, SGBDR, que funciona unicamente sob sistema operacional Windows NT. Para trabalhar com esta ferramenta a Microsoft fornece o ISQL, tanto em interface DOS quanto em interface Windows. Alm disso, podemos nos comunicar com o banco a partir de APIs do Windows, fazendo uso da camada de comunicao DBLibrary, ou via ODBC. A interface com o usurio pode ser construda em Visual Basic ou Visual C++, para acesso atravs da DB-Library (que d total controle sobre as funes do banco), ou via VB, VC++, Visual Fox Pro, Access, Excel, Word, para acesso via ODBC. Tambm podemos utilizar o acesso atravs de protocolo TCP/IP e linguagem HTML, caracterizando aplicaes de INTRA/INTER/EXTRANET; o acesso ao banco propriamente dito, entre a camada de conexo a bancos de dados e o Web Server, ser realizado via ODBC. Utilize o Enterprise Manager para criar administrar bases SQL-Server Criando uma base de dados:
Clique com o boto direito
Indique o nome da base
Indica o local padro:C:\Arquivos de programas\ Microsoft SQL Server\MSSQL\data \Demon_Data.MDF
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 42 de 60
Indica um novo local para criao da base Local onde base ser criada
Indica o local padro: C:\Arquivos de programas\ Microsoft SQL Server\MSSQL\data \Demon_Log.MDF
Indica um novo local para criao do log de erros
Local onde o log ser criado
Base criada
Criando uma tabela
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 43 de 60
Clique com o boto direito
Determina o campo chave
Tabela criada
Existe mais de uma forma acessar uma tabela, veremos agora uma delas: Projeto 11 Testando a existncia e a senha de um usurio
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 44 de 60
O objetivo deste exemplo verificar se o usurio existe na tabela acesso e se a senha digitada igual a constante na coluna senha da tabela;. Estrutura da tabela:
Insira 04 usurios: Usuario Gondra Fabio Ana Maria Senha Dragon Ramos 123456 121212 Nivel 0 1 2 1
Neste exemplo usei trs objetos labels, dois objetos textboxs, um objeto button, um BdpConnection e um BdbDataAdapter, o efeito desejado validar o usurio e sua senha mediante um click sobre o boto validar. A pgina:
Objeto Label1 Label2 Label3 Textbox1 Textbox2 Button1 BdpConnection BdbDataAdapter DataSet1 Dados para IL:
Propriedade Text Text ID ID Maxlength ID Maxlength TextMode Text ID Name Name Name
Valor Usurio: Senha: Resultado Usuario 10 Senha 6 Password Validar Validar Conexo Adaptador DSAcesso
Evento
Validar_click
Delphi 2005 Delphi.NetIL C# Delphi.NET Application ASP.NET Web C#Builder
Visual Studio 2005 C#Namespace cs11 pas11
Fbio Jos de Gondra Ramos Pgina 45 de 60
DiretrioC:\WebCurso\CSharp\Exemplo11 C:\WebCurso\Delphi.NET\Exemplo11
Application
ASP.NET Web Application Delphi for .NET
Estabelecendo a conexo Click com o boto direito sobre o BdpConnection: Adicione uma nova conexo (ADD); Indique o Database (a base de dados); Indique o HostName (o nome do servidor);
Teste a conexo Configurando o adaptador Click com o boto direito sobre o BdpDataAdapter e selecione Configure Data Adapter...:
Escolha a tabela acesso; Marque a opo Optimize; e click sobre Generate SQL:
Para se certificar que os dados esto disponveis click em Preview Data:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 46 de 60
Em seguida gere o DataSet:
Escrevendo cdigos em C#: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here resultado.Text=""; } private void Validar_Click(object sender, System.EventArgs e) { Adaptador.Active=false;Adaptador.SelectCommand.CommandText="select * from acesso where usuario="+"'"+usuario.Text+"'";
Adaptador.Active=true; if (dsacesso.Tables["acesso"].Rows.Count ==0) { usuario.Text=""; resultado.Text="Usurio no existe!"; } else { resultado.Text=""; if (senha.Text !=(dsacesso.Tables["acesso"].Rows[0]["senha"].ToString())) {
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 47 de 60
resultado.Text="Senha invlida!"; } else { resultado.Text=""; Session["permissao"]=dsacesso.Tables["acesso"].Rows[0]["nivel"].ToString(); Server.Transfer("Menu.aspx"); } } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin Adaptador.Active:=false; Adaptador.SelectCommand.CommandText:='select * from acesso where usuario='''+usuario.text+''''; Adaptador.Active:=true; if (dSAcesso.Tables['acesso'].rows.count = 0 ) then begin usuario.Text:=''; Resultado.Text:='Usurio no existe!'; end else begin resultado.Text:=''; if senha.Text (dSAcesso.Tables['acesso'].Rows[0]['senha'].ToString) then resultado.Text:='Senha invlida!' else begin resultado.Text:=''; session['permissao']:=dSAcesso.Tables['acesso'].Rows[0]['nivel'].ToString; server.Transfer('Menu.aspx'); end; end; end;
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 48 de 60
Projeto 12 Um menu Animado! O objetivo deste exemplo mostrar a interao entre scripts Java e ASP.Net com C# ou Delphi.Net. A pgina
Neste exemplo foram usados apenas objetos HTML com orientao aos objetos descritos na paleta HTML Elements. HTML Input Input HR DIV DIV SELECT Objeto Html textbox Html textbox Html horizontal rule Html Label Html Label Html ListBox Propriedade Name Name Size onmouseover onmouseover name onclick disabled name onclick disabled background onload onunload Valor Relgio message 3 abrecadastros() abremovimentos() opcadastro paginacadastros() True opcadastro paginacadastros() True Dock.jpg Start() KillClock()
SELECT LABEL DOCUMENT Dados para IL: IL C# Delphi.NET
Html ListBox Sem referncia
Application ASP.NET Web C#Builder
Application
Namespace cs12 pas12
DiretrioC:\WebCurso\CSharp\Exemplo12 C:\WebCurso\Delphi.NET\Exemplo12
ASP.NET Web Application Delphi for .NET
A pgina descrita a seguir compem codificao HTML utilizando-se de JAVASCRIPT:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 49 de 60
Cadastros LivrosRevistas Almanaques
Clientes Fornecedores Movimentos LocaoDevoluo Compras
"MENU PRINCIPAL "
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 50 de 60
=
=
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 52 de 60
Projeto 13 Incluindo, excluindo e alterando dados em uma tabela Mtodo I Utilizando o Borland Data Provider. O objetivo deste exemplo montar uma pgina capaz de incluir, excluir ou alterar dados contidos em uma tabela mediante um click sobre o boto desejado, fazendo a conexo com objetos da paleta Borland Data Provider. Estrutura da tabela:
Salve a tabela com o nome de curso No esquea de liberar a permisso do usurio ASPNET ao dados da tabela. A pgina:
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 53 de 60
Objeto Label1 Label2 Label3 Label4 Label5 Label6 Textbox1 Textbox2 Textbox3
Propriedade Text Font bold Text Font bold Text Text Text Text ID ID ID ID
Dropdownlist1
Items
Image1 Button1 Button2 Button3 BdpConnection
Imageurl Text ID Text ID Text ID Name Name Connection Tables SQL Select command
BdbDataAdapter
SQL Update command
SQL Insert command SQL Delete command DataSet1 DBWebDataSource1 DBWebNavigator1 Dataset Name Name Datasource ID Dbdatasource Tablename ID Dbdatasource Tablename
DBWebGrid1 Dados para IL:
Valor Druidas Web-Systema true Cadastro de cursos true Cdigo: Descrio: Carga horria Valor wcodigo wdescricao wvalor wcarga Propriedades Membros Items Value 20 horas 20 horas 20 horas 40 horas 40 horas 40 horas 60 horas 60 horas 60 horas 80 horas 80 horas 80 horas .\images\druidas.gif Adicionar adicionar Remover remover Alterar alterar conexao adaptador conexao curso SELECT Codigo, Descricao, Valor, Carga_horaria FROM dbo.Curso UPDATE dbo.Curso SET Codigo = ?, Descricao = ?, Valor = ?, Carga_horaria = ? WHERE Codigo = ? INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ( ?, ?, ?, ?) DELETE FROM dbo.Curso WHERE Codigo = ? dscurso dscurso dadoscurso dscurso navegador dadoscurso Curso gradededados dadoscurso Curso
Evento
Adicionar_click Remover_clik Alterar_click
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 54 de 60
IL C# Delphi.NET
Application ASP.NET Web C#Builder
Application
Namespace cs13 pas13
DiretrioC:\WebCurso\CSharp\Exemplo13 C:\WebCurso\Delphi.NET\Exemplo13
ASP.NET Web Application Delphi for .NET
Escrevendo cdigos em C#: private void adiciona_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.InsertCommand.CommandText="INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('"+wcodigo.Text+"', '"+wdescricao.Text+"', '"+wvalor.Text+"', '"+wcarga.SelectedValue+"')"; adaptador.InsertCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } private void remover_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.DeleteCommand.CommandText="DELETE FROM dbo.Curso WHERE Codigo = '"+wcodigo.Text+"'"; adaptador.DeleteCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } private void alterar_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.UpdateCommand.CommandText="UPDATE dbo.Curso SET Codigo = '"+wcodigo.Text+"', Descricao = '"+wdescricao.Text+"', Valor = '"+wvalor.Text+"', Carga_horaria = '"+wcarga.SelectedValue+"' WHERE Codigo = '"+wcodigo.Text+"'"; adaptador.UpdateCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.alterar_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.UpdateCommand.CommandText:='UPDATE dbo.Curso SET Codigo = '''+wcodigo.Text+''', Descricao = '''+wdescricao.Text+''', Valor = '''+wvalor.Text+''',
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 55 de 60
Carga_horaria = ' Codigo = '''+wcodigo.Text+''''; adaptador.UpdateCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end;
''+wcarga.SelectedValue+'''
WHERE
procedure TWebForm1.remover_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.DeleteCommand.CommandText:='DELETE FROM dbo.Curso WHERE Codigo = '''+wcodigo.Text+''''; adaptador.DeleteCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.adiciona_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.InsertCommand.CommandText:='INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('''+wcodigo.Text+''', '''+wdescricao.Text+''', '''+wvalor.Text+''', '''+wcarga.SelectedValue+''')'; adaptador.InsertCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end; ATENO: No exemplo acima no foi tratada a condio de unicidade da chave do cdigo. Projeto 14 Incluindo, excluindo e alterando dados em uma tabela Mtodo II Utilizando Data Components O objetivo deste exemplo montar uma pgina capaz de incluir, excluir ou alterar dados contidos em uma tabela mediante um click sobre o boto desejado, fazendo a conexo com objetos da paleta Data Components. Estrutura da tabela: A mesma do exemplo anterior A pgina: Na pgina deste exemplo houve a substituio dos objetos Borland Data Provider por objetos Data Components e tambm inclui mais um label para indicar o status da conexo. Objetos Borland Data Provider BDPConnection BDPDataAdapter Objetos Data Components SQLConnection SQLDataAdapter
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 56 de 60
Objeto Label1 Label2 Label3 Label4 Label5 Label6 Label7 Textbox1 Textbox2 Textbox3
Propriedade Text Font bold Text Font bold Text ID Text Text Text Text ID ID ID ID
Dropdownlist1
Items
Image1 Button1 Button2
Imageurl Text ID Text ID
Valor Druidas Web-Systema true Cadastro de cursos true Status: Estado Cdigo: Descrio: Carga horria Valor wcodigo wdescricao wvalor wcarga Propriedades Membros Items 20 horas 20 horas 40 horas 40 horas 60 horas 60 horas 80 horas 80 horas .\images\druidas.gif Adicionar adicionar Remover remover
Evento
Value 20 horas 40 horas 60 horas 80 horas Adicionar_click Remover_clik
Delphi 2005 Delphi.Net
Visual Studio 2005 C#Text ID Name Name Name Name Datasource ID Dbdatasource ID Dbdatasource Alterar alterar conexao adaptador dscurso dadoscurso dscurso navegador dadoscurso gradededados dadoscurso
Fbio Jos de Gondra Ramos Pgina 57 de 60
Button3 SQLConnection SQLDataAdapter DataSet1 DBWebDataSource1 DBWebNavigator1 DBWebGrid1 Dados para IL: IL C# Delphi.NET
Alterar_click
Application ASP.NET Web C#Builder
Application
Namespace cs14 pas14
DiretrioC:\WebCurso\CSharp\Exemplo14 C:\WebCurso\Delphi.NET\Exemplo14
ASP.NET Web Application Delphi for .NET
Para trabalhar com SQL de forma literal necessrio incluir a biblioteca System.Data.SqlClient; A conexo com o servidor e base de dados deveram ser feitas de forma que fiquem disponveis para qualquer procedimento da aplicao, portanto dever ser estabelecida quando a pgina for carregada. Escrevendo cdigos em C#: Na clausula Using inclua: using System.Data.SqlClient; Na clausula Public inclua a varivel: public string conectar; No procedimento Page_Load: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here conectar="server=TITANIUM;database=Cursos;Trusted_connection=Yes"; conexao.ConnectionString = conectar; try { adaptador.SelectCommand.CommandText="SELECT * FROM CURSO"; conexao.Open(); estado.Text=System.String.Format("Status: Conectado a "+conexao.Database); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); gradecurso.TableName="curso"; dadoscurso.AutoRefresh=true; } catch { estado.Text="Status: Falha na conexo!"; } }
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 58 de 60
Na clausula implementation private void adiciona_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.InsertCommand.CommandText="INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('"+wcodigo.Text+"', '"+wdescricao.Text+"', '"+wvalor.Text+"', '"+wcarga.SelectedValue+"')"; conexao.Open(); adaptador.InsertCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } private void remover_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.DeleteCommand.CommandText="DELETE FROM dbo.Curso WHERE Codigo = '"+wcodigo.Text+"'"; conexao.Open(); adaptador.DeleteCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } private void alterar_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.UpdateCommand.CommandText="UPDATE dbo.Curso SET Codigo = '"+wcodigo.Text+"', Descricao = '"+wdescricao.Text+"', Valor = '"+wvalor.Text+"', Carga_horaria = '"+wcarga.SelectedValue+"' WHERE Codigo = '"+wcodigo.Text+"'"; conexao.Open(); adaptador.UpdateCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): Na clausula Uses inclua: System.Data.SqlClient; Na clausula Public inclua a varivel: Conectar:string; No procedimento Page_Load: procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 59 de 60
begin // TODO: Put user code to initialize the page here //conectar:='integrated security=SSPI;data source=TITANIUM;persist security info=False;initial catalog=Cursos'; conectar:='server=TITANIUM;database=Cursos;Trusted_connection=Yes'; conexao.ConnectionString := conectar; try adaptador.SelectCommand.CommandText:='SELECT * FROM CURSO'; conexao.Open(); estado.Text:=System.String.Format('Status: Conectado a ',conexao.Database); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); gradecurso.TableName:='curso'; dadoscurso.AutoRefresh:=true; except estado.Text:='Status: Falha na conexo!'; end; end; Na clausula implementation procedure TWebForm1.alterar_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.UpdateCommand.CommandText:='UPDATE dbo.Curso SET Codigo = '''+wcodigo.Text+''', Descricao = '''+wdescricao.Text+''', Valor = '''+wvalor.Text+''', Carga_horaria = '''+wcarga.SelectedValue+''' WHERE Codigo = '''+wcodigo.Text+''''; conexao.Open(); adaptador.UpdateCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.remover_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.DeleteCommand.CommandText:='DELETE FROM dbo.Curso WHERE Codigo = '''+wcodigo.Text+''''; conexao.Open(); adaptador.DeleteCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.adiciona_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.InsertCommand.CommandText:='INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('''+wcodigo.Text+''', '''+wdescricao.Text+''', '''+wvalor.Text+''', '''+wcarga.SelectedValue+''')'; conexao.Open(); adaptador.InsertCommand.ExecuteNonQuery(); dscurso.Reset();
Delphi 2005 Delphi.Net
Visual Studio 2005 C#
Fbio Jos de Gondra Ramos Pgina 60 de 60
adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end;
Recommended