Você está na página 1de 49

Delphi 5 - Novos Recursos

Delphi 5 Novo Visual


Desktop
O recurso Desktop permite organizar as janelas do Delphi da maneira ideal para o seu trabalho. Voc posiciona as janelas de acordo com sua necessidade e pode gravar esta configurao como um Desktop. Os nicos itens que no sofrem alterao com a mudana de desktop so o formulrio e a palheta de componentes. Veja as figuras abaixo em direfentes tipos de Desktop:

Somente neste modo o Explorer exibido.

O Form se manteve estvel em diferentes Desktops

O Object Inspector encontra-se direita.

Delphi 5 - Novos Recursos

O Novo Object Inspector


Novidades visuais foram adicionadas ao Object Inspector que se manteve o mesmo desde a verso 2.0 do Delphi. Agora possvel agrupar as propriedades por categorias prdefinidas pelo Delphi. Podemos ainda exibir ou ocultar estes grupos de propriedades (Bastando clicar com o boto direito do mouse no Object Inspector e selecion-los no menu View. A ordenao fica por conta do menu Arrange, onde selecionamos o modo convencional ou por grupo). Tambm foi adicionada uma barra de status que utilizada para indicar a quantidade de itens ocultos. Propriedades de Lista suspensa como Color e Cursor ganharam novo visual na escolha dos itens. As propriedades do tipo TBrush e TPen tambm exibem seus desenhos nas listas.

Propriedades Color e Cursor em sua real representao.

Barra de Status no Object Inspector.

Delphi 5 - Novos Recursos

To-Do List
Esta ferramenta de grande valia para auxili-lo no desenvolvimento de seus projetos. Com ela possvel criar uma listagem de tarefas que precisam ser implementadas no sistema. Sua utilizao bem simples, basta clicar com o boto direito do mouse sobre a janela Code Editor e selecionar a opo Add To-Do Item..., para que a janela Add TO-DO seja exibida:

Preencha corretamente as informaes nos campos e, em seguida, voc ver uma linha de comentrio, com uma codificao especial, adicionada a sua Unit:

{ TODO -oFelipe -cExcecoes : Rotina de tratamento de erro }


A janela To-Do List pode ser exibida clicando no menu View | ToDo List.

Delphi 5 - Novos Recursos

Ao excluir os itens contidos nesta janela, automaticamente a linha de cdigo ser removida. Marcando Done para o item, o comentrio na Unit sofrer a seguinte alterao:

{ DONE -oFelipe -cExcecoes : Rotina de tratamento de erro }

Project Manager
A principal novidade do Project Manager, a interatividade com o Windows Explorer, permitindo o Drag And Drop(Clicar e arrastar) entre arquivos para adicion-los ao seu projeto.

Object Browser
O Object Browser uma ferramenta antiga, utilizada por programadores mais experientes. O objetivo bsico desta ferramenta listar hierarquicamente as classes contidas em seu projeto. Nas verses

Delphi 5 - Novos Recursos

anteriores do Delphi, para acessar esta janela era necessrio compilar o projeto, mas agora isto feito automaticamente.

Delphi 5 - Novos Recursos

Objeto TFrame
O objeto TFrame semelhante ao componente TPanel. O propsito deste componente criar uma classe incorporada de vrios outros componentes. O mais interessante que este novo Frame pode tambm ser adicionado a sua palheta de componentes, sendo assim instanciado futuramente em suas outras aplicaes de forma independente da original. As alteraes feitas em objetos TFrame so automaticamente refletidas nas instncias que a referenciam. O cdigo mantido na Unit do Frame. A utilizao de Frames muito simples, basta clicar em 'File | New Frame...'.

Um novo Frame ser criado em forma de um formulrio. Inclua os objetos que deseja utilizar, e adicione ao Form principal um objeto TFrame da palheta de componentes.

Delphi 5 - Novos Recursos

Selecione o Frame criado na janela exibida, e clique em Ok. Ser adicionado um objeto parecido com o TPanel no Form contendo os objetos includos no Frame.

O objeto TFrame inserido dentro de um formulrio.

Delphi 5 - Novos Recursos

Palheta ADO
O Delphi 5 incorpora uma biblioteca de 7 componentes para acesso camada ADO. A camada ADO um novo padro Microsoft para acesso a banco de dados. Antes do ADO, isto era feito com a camada ODBC, mas a Microsoft percebeu que este camada no serviria para aplicaes Internet. Surgiu, ento, a OLE DB que alm de possuir drivers nativos para acessar banco de dados altamente integrada Internet. A camada ADO so classes de alto nvel para acesso ao OLE DB. O Delphi, at sua verso 4, s acessava banco de dados atravs da BDE. Mesmo quando era necessrio utilizar o ODBC, a camada BDE servia como intermediria de comunicao. Com o advento da programao para Internet e a difuso do desenvolvimento em mltiplas camadas, a Inprise viu a necessidade de extender o padro de acesso, visto que nem todos os provedores ou camadas Middletier podero Ter o BDE instalado. Sendo assim, o Delphi 5 permite o acesso tambm via ADO (ActiveX Data Objects), de forma muita parecida com o acesso via BDE. Veja a ilustrao abaixo, que representa a conexo via BDE ou ADO:

Delphi c/ BDE

Delphi c/ ADO

BDE

ADO

ODBC

OLE DB

ODBC

Banco de Dados BDE compatvel

Banco de Dados BDE compatvel

Banco de Dados BDE compatvel

Banco de Dados BDE compatvel

Delphi 5 - Novos Recursos

Exemplo1: Criando um DataSet com TADOTable:


Este exemplo demonstra o uso mais simples dos objetos ADO. Aqui, um objeto DBGrid ser preenchido com o contedo de uma tabela, fornecido atravs de um objeto TADOTable: 1) Crie uma nova aplicao, e no formulrio 1, insira um objeto TADOConnection; O objeto ADO Connection equivalente ao objeto TDatabase, e como este, representa a conexo com o banco de dados. As transaes e os parmetros de conexo sero realizados atravs deste objeto. 2) Em seguida, devemos configurar o objeto ADOConnection1. D um clique duplo sobre o objeto, para que a janela Connection String seja exibida:

Esta janela ir indicar os parmetros de conexo com o banco de dados. As opes representam: Use Data Link File: Use Connection String: Arquivo .UDL, que contm os parmetros de conexo pr formatados. Permite criar um novo arquivo .UDL, com todos os parmetros de conexo.

Neste caso, selecione Use Connection String e clique no boto Build. A janela Data Link Properties ser exibida:

Delphi 5 - Novos Recursos

Cada Item exibido nesta janela representa um mecanismo de conexo aos dados. Lembrando, o ADO no acesso o banco de dados sozinho, ele se conecta a um motor de acesso para realizar a conexo. Este motor pode ser uma conexo ODBC, uma conexo OLEDB nativa, uma conexo JET Engine, ou algum outro tipo de motor instalado. No nosso caso, usaremos o motor Jet Engine, para acessar o banco de dados Access. Selecione o portanto, o item Jet Egine 4.0 OLE DB Provider e clique em Next. A aba connection ser exibida: Nota: Esta aba ir possuir uma interface diferente para cada banco de dados. Na opo n 1, selecione o arquivo .MDB do banco de dados que ser acessado por nossa aplicao. Abra o arquivo DBDEMOS.MDB. Aps clique em OK, para voltar ao IDE do Delphi. Altere a propriedade Connected para TRUE, a fim de conectar com o banco de dados.

Delphi 5 - Novos Recursos

2) Insira um objeto TADOTable no formulrio. Este objeto representa a conexo com a tabela e equivalente ao objeto TTable. Primeiramente, devemos conectar este objeto ao TADOConnection. Faa isto alterando a propriedade Connection, indicando o objeto ADOConnection1. Em seguida, indique o nome da tabela na propriedade TableName. Selecione Customer. 3) Insira um objeto TDatasource no formulrio, e linke-o com o objeto ADOTable1. 4) Insira um objeto TDbGrid, e conecte-o com o objeto DataSource1. Ok! Basta alterar a propriedade Active do objeto AdoTable1 para TRUE, e seu formulrio ser parecido com a figura abaixo:

Uma descrio detalhada de todas as propriedade, mtodos e eventos relevantes aos objeto da palheta ADO encontra-se disponvel a seguir:

TADOConnection
Este componente utilizado para criar uma nova conexo com a camada ADO. bastante semelhante ao componente TDatabase, sua utilizao tambm opcional.

Delphi 5 - Novos Recursos

Principais Propriedades
CommandTimeout Connected ConnectString Esta propriedade permite especificar um determinado tempo de limite para obter uma resposta de um comando executado. Especifica se existe ou no uma conexo. Define a String de conexo entre a camada intercessora do banco de dados com o ADO. Utilizamos esta propriedade para definir qual ser o banco de dados e a camada para o ADO(Jet, ODBC, OLE DB). Esta propriedade permite especificar um determinado tempo de limite para ser feita a conexo com o banco de dados. Esta propriedade define o tipo de conexo. CoConnectUnspecified Este e o modo padrao do ADO. CoAsyncConnect Este modo e utilizado Quando o servidor for muito lento. Define onde estar o cursor para suas tabelas. Define um banco de dados padro para a conexo quando uma conexo via ConnectionString no for bem sucedida. Define o nvel de isolamento entre do banco de dados. Esta propriedade semelhante propriedade TransIsolation do objeto Database. Define um modo de conexo: Somente leitura, leitura e gravao e etc. Especifica o mtodo de conexo que ser utilizado pela camada ADO: Jet, OLEDB, ODBC, etc.

ConnectionTimeout ConnectOption

CursorLocation DefaultDatabase IsolationLevel

Mode Provider

Principais Eventos
AfterConnect AfterDisconnect BeforeConnect BeforeDisconnect OnBeginTrasComplete OnCommitComplete OnConnectCompleted Ocorre aps efetuar uma conexo. Ocorre aps desconectar. Ocorre antes de efetuar uma conexo. Ocorre andes de desconectar. Ocorre quando iniciada uma nova transao. Ocorre quando o comando Commit foi executado. Ocorre quando feita uma conexo.

Delphi 5 - Novos Recursos

OnDisconnect OnExecuteComplete OnInfoMessage OnLogin OnRollbackTransComplete OnWillConnect OnWillExecute

Ocorre quando terminada uma conexo. Ocorre quando uma conexo com o ADO executou um comando(Command). Ocorre quando uma conexo bem sucedida e informaes adicionais so enviadas pelo Provider. Ocorre quando aberta a janela LoginPrompt. Ocorre quando executado um RollBack. Ocorre quando uma conexo est prestes a ser efetuada. Ocorre quando uma execuo est prestes a ser efetuada.

Principais mtodos
Open Close Permite ativar uma conexo Termina uma conexo

TADOTable
Objeto ADOTable de uma conexo ADO equivalente ao objeto TTable da camada BDE.

Principais Propriedades
CacheSize Indica quantos registros sero pedidos para o servidor por vez, e armazenados na memoria local. Novos pedidos so automaticamente controlados pelo objeto. Objeto TADOConnection, que representa a instancia do banco de dados atual. Pode ser usado no lugar de um objeto TADOConnection. Permite configurar uma string de conexo com o servidor. Indica se o objeto ira trabalhar em modo ChachedUpdates. Caso esta propriedade esteja configurada para clUseClient, os dados serao armazenados no cliente, e todas as operacoes realizadas (como insert, update e delete) permanecerao no mesmo. Caso a propriedade seja clUseServer, as alteracoes serao automaticamente enviadas para o servidor.

Connection ConnectionString CursorLocation

Delphi 5 - Novos Recursos

CursorType

Indica o tipo de cursor utilizado pelo cliente. Os possiveis valores so: ctUnspecified Um tipo de cursor no pre-definido pelo objeto. ctOpenForwardOnly Cursor unidirecional. Com este valor, o usuario podera apenas navegar para frente, nunca retornar os registros. ctKeyset Cursor bi-direcional, no concorrente. Aqui, o usuario pode navegar para frente e para tras no result set. As alteracoes feitas por transacoes concorrentes no estarao acessiveis, e os registros deletados, apesar de visiveis, no estarao disponiveis. ctDynamic Bi-direcional e concorrente. Este tipo de cursor e o que apresenta a pior performance e o que gasta mais recursos do sistema. Aqui, o usuario visualiza as alteracoes, insercoes e delecoes de outras transacoes. ctStatic Uma simples copia dos registros. Qualquer tipo de alteracao concorrente no sera visualizada neste cursor.

LockType

Especifica como o lock de registros sera executado. Os possiveis valores so: ItUnspecified Um tipo de lock que no foi pre-definido pelo objeto; itReadOnly Somente leitura; itPessimistic Impede que outras sessoes alterem o registro que estiver locado pelo usuario; itOptimistic Todos podem alterar o mesmo registro; itBatchOptimistic Impede que outras sessoes alterem quando estiver em modo update Batch. til apenas quando a tabela est em Client-Side. Indica quais registros sero devolvidos para o servidor ou para a camada middleware. Se o valor for moMarshalAll, todos os registros sero enviados para o servidor. Caso o valor seja moMarshalModifiedOnly, apenas os registros modificados sero devolvidos.

MarshalOptions

Delphi 5 - Novos Recursos

MaxRecords TableDirect

TableName

Indica a quantidade mxima de registros exibidos pelo objeto. 0 (zero) indica todos os registros. Quando False, os dados sero sempre requisitados via intrues SQL Select. Neste caso, a instruo criada automaticamente pelo objeto. O valor Default e False. Nome da tabela dentro do banco de dados.

Principais Eventos
OnEndOfRecordset Ocorre quando o ponteiro avana aps o ltimo registro carregado pelo RecordSet. importante notar que esta ao no representa o final da tabela, e sim, o final do buffer. O parmetro MoreData, quando True, ir indicar a requisio dos prximos registros que no foram carregados para o buffer. O parmetro EventStatus indica se a operacao que gerou o evento foi ou no bem sucedida. Ocorre quando uma requisio de dados para o buffer terminada. Ocorre durante a leitura dos dados para o buffer. O parmetro Progress indica a quantidade de registros lidos, MaxProgress a quantidade a ser lida e EventStatus se a operao foi bem sucedida. Ocorre aps a gravao de um valor para algum campo da tabela. Ocorre aps o ponteiro de registro realizar alguma movimentao. Ocorre aps um ou vrios registros serem atualizados. Ocorre antes da edio do valor de um campo. Ocorre antes da edio/insero de um registro. Ocorre antes da alterao de algum valor da tabela. Ocorre antes da movimentao do ponteiro para algum lugar.

OnFetchComplete OnFetchProgress

OnfieldChangeComplete OnMoveComplete OnRecordChangeComplete OnWillChangefield OnWillChangeRecord OnWillChangeRecordset OnWillMove

Delphi 5 - Novos Recursos

Principais Mtodos
function Seek(const KeyValues: Variant; SeekOption: TSeekOption = soFirstEQ): Boolean; Faz a pesquisa utilizando o ndice atual. O primeiro parmetro um array OLE (VarArrayOf) de valores de pesquisa. O segundo indica como a pesquisa ser realizada. Os possveis valores para SeekOption so: soFirstEQ Caso exista, o ponteiro e posicionado na primeira ocorrencia. soLastEQ Caso exista, o ponteiro e posicionado na ultima ocorrencia soAfterEQ Record pointer positioned at matching record, if found, or just after where that matching record would have been found. soAfter O ponteiro posicionado no registro encontrado +1. soBeforeEQ Record pointer positioned at matching record, if found, or just before where that matching record would have been found. soBefore O ponteiro e posicionado no registro encontrado 1

TADOQuery
Representa o objeto TQuery da palheta DataAccess. O mais indicado para conexes com um banco de dados Cliente-Servidor.

Principais Propriedades
Connection CursorLocation Objeto TADOConnection que representa a instncia do banco de dados atual. Indica se o objeto ira trabalhar em modo ChachedUpdates. Caso esta propriedade esteja configurada para clUseClient, os dados serao armazenados no cliente, e todas as operacoes realizadas (como insert, update e delete) permanecerao no mesmo. Caso a propriedade seja clUseServer, as alteracoes serao automaticamente enviadas para o servidor.

Delphi 5 - Novos Recursos

CursorType

Indica o tipo de cursor utilizado pelo cliente. Os possiveis valores so: ctUnspecified Um tipo de cursor no pre-definido pelo objeto. ctOpenForwardOnly Cursor unidirecional. Com este valor, o usuario podera apenas navegar para frente, nunca retornar os registros. ctKeyset Cursor bi-direcional, no concorrente. Aqui, o usuario pode navegar para frente e para tras no result set. As alteracoes feitas por transacoes concorrentes no estarao acessiveis, e os registros deletados, apesar de visiveis, no estarao disponiveis. ctDynamic Bi-direcional e concorrente. Este tipo de cursor e o que apresenta a pior performance e o que gasta mais recursos do sistema. Aqui, o usuario visualiza as alteracoes, insercoes e delecoes de outras transacoes. ctStatic Uma simples copia dos registros. Qualquer tipo de alteracao concorrente no sera visualizada neste cursor.

LockType

Especifica como o lock de registros sera executado. Os possiveis valores so: ItUnspecified Um tipo de lock que no foi pre-definido pelo objeto; itReadOnly Somente leitura; itPessimistic Impede que outras sessoes alterem o registro que estiver locado pelo usuario; itOptimistic Todos podem alterar o mesmo registro; itBatchOptimistic Impede que outras sessoes alterem quando estiver em modo update Batch. til apenas quando a tabela est em Client-Side. Indica quais registros sero devolvidos para o servidor ou para a camada middleware. Se o valor for moMarshalAll, todos os registros sero enviados para o servidor. Caso o valor seja moMarshalModifiedOnly, apenas os registros modificados sero devolvidos.

MarshalOptions

Delphi 5 - Novos Recursos

MaxRecords ParamCheck Parameters

Indica a quantidade mxima de registros exibidos pelo objeto. 0 (zero) indica todos os registros. Se True, o objeto ir considerar as expressoes :variavel como um nome de parmetro. Propriedade da classe TParameters, que serve para a passagem de valores para os parametros da SQL. A sintaxe diferente da propriedade Params do objeto TQuery. Ex: ADOQuery1.Parameters.Params.ParamByn ame(codigo_cliente).Value:=1; Instruo SQL que ser executada pelo objeto.

SQL

Principais Eventos
OnEndOfRecordset Ocorre quando o ponteiro avana aps o ltimo registro carregado pelo RecordSet. importante notar que esta ao no representa o final da tabela, e sim, o final do buffer. O parmetro MoreData, quando True, ir indicar a requisio dos prximos registros que no foram carregados para o buffer. O parmetro EventStatus indica se a operacao que gerou o evento foi ou no bem sucedida. Ocorre quando uma requisio de dados para o buffer terminada. Ocorre durante a leitura dos dados para o buffer. O parmetro Progress indica a quantidade de registros lidos, MaxProgress a quantidade a ser lida e EventStatus se a operao foi bem sucedida. Ocorre aps a gravao de um valor para algum campo da tabela. Ocorre aps o ponteiro de registro realizar alguma movimentao. Ocorre aps um ou vrios registros serem atualizados. Ocorre antes da edio do valor de um campo. Ocorre antes da edio/insero de um registro.

OnFetchComplete OnFetchProgress

OnfieldChangeComplete OnMoveComplete OnRecordChangeComplete OnWillChangefield OnWillChangeRecord

Delphi 5 - Novos Recursos

OnWillChangeRecordset OnWillMove

Ocorre antes da alterao de algum valor da tabela. Ocorre antes da movimentao do ponteiro para algum lugar.

Principais Metodos:
Open Close ExecSQL Abre a query Fecha a Query Executa uma intruo SQL

TADODataSet
Este objeto a classe pai dos objetos TADOTable, TADOQuery e TADOStoredProc. Suas propriedades, mtodos e eventos so os mesmo destes objetos.

TADOCommand
No possui equivalente na palheta DataAccess. Este componente representa o objeto ADO Command, da biblioteca ADO. Serve apenas para enviar instrues SQL para o servidor, e no permite a ligao com objetos DataControl. Possui uma performance otimizada para instrues que no necessitem retornar dados para a aplicao. Operaes como backup, deleo de tabelas e update batchs so mais rpidos quando executados atravs deste componente. Aplicaes SQL tambm podem ter um desempenho melhorado com este componente.

Principais Propriedades
CommandText CommandTimeOut CommandType Connection ParamCheck Instruo SQL que ser executada pelo servidor. Tempo que o objeto ir esperar pela resposta do servidor. Indica o tipo de instruo contida na propriedade CommandText. Objeto TADOConnection, que representa a instncia do banco de dados atual. Se True, o objeto ir considerar as expressoes :variavel como um nome de parmetro.

Delphi 5 - Novos Recursos

Parameters

Propriedade da classe TParameters, que serve para a passagem de valores para os parmetros da SQL. A sintaxe diferente da propriedade Params do objeto TQuery. Ex: ADOCommand1.Parameters.Params.Param Byname(codigo_cliente).Value:=1;

Este objeto no possui eventos. Para tratar os possveis resultados que este objeto pode gerar, utilize os eventos do objeto TADOConnection.

Principais Mtodos
Execute Envia a intrucao SQL para o servidor

TADOStoredProc
Equivalente ao objeto TStoredProc, da palheta DataAccess. Permite acionar uma procedure armazenada no servidor de banco de dados.

Principais Propriedades:
Connection Parameters ProcedureName Objeto TADOConnection que representa a instncia atual do banco de dados. Define os parmetros que sero passados ou recebidos da Stored Procedure. Nome da StoredProcedure.

TRDSConnection
Objeto para criao de aplicaes multi-camadas. Este objeto serve como Middletier para conexes ADO em vrias camadas. Existem outras alternativas e solues mais interessantes para Delphi, como MIDAS e CORBA. Portanto, no daremos nfase ao Remote Data Space.

Delphi 5 - Novos Recursos

Palheta Interbase
A palheta Interbase fornece e o melhor mtodo para criar uma aplicao Delphi acessando base de dados Interbase. Uma aplicao compilada em Delphi 5, utilizando os componentes da palheta Interbase apresentar uma performance superior do que as aplicaes compiladas em verses anteriores do Delphi. Isto porque os novos componentes Interbase dispensam a camada BDE ou qualquer outra camada. Uma aplicao construda com estes componentes ter o cdigo de acesso ao banco built-in, ou seja, dentro do prprio executvel. Repare na figura 1 a exemplificao desta diferena:

Delphi

Delphi

BDE

Banco de Dados

Banco de Dados

Alm de maior performance, o desenvolvedor passa a ganhar tambm em recursos. Com os novos objetos possvel extrair vrias informaes do servidor, como memria disponvel, espao em disco, banco de dados utilizado, porcentual de recursos disponveis, e outras. Um maior controle do SQL e das transaes realizadas tambm foram adicionadas aos componentes. Apesar de todas estas vantagens, os componentes Interbase oferecem um bvio ponto negativo: Uma aplicao construda com estes componentes dever ser totalmente reconstruida caso o cliente resolvar mudar de banco de dados.

Componentes da palheta Interbase


A seguir encontra-se uma breve descrio dos principais componentes da palheta. Eles esto listados por ordem de importncia dentro do projeto:

Delphi 5 - Novos Recursos

TIBDatabase
Equivalente ao componente TDatabase, da palheta DataAccess. Representa a instncia do banco de dados da aplicao, e realiza a conexo ao banco, atravs da propriedade Connected.

Principais Propriedades:
Connected Databasename DefaultTransaction IdleTimer Quando True, inicia a conexo com o servidor. Nome do arquivo de banco de dados. Indica um objeto TIBTransaction como objeto de transao Default. Especifica quanto tempo o cliente ir esperar caso o servidor no envie nenhuma resposta. Se o tempo for ultrapassado e o servidor no responder, a conexao ser desfeita. Se True, o objeto pedir nome e senha ao usurio. Indica o cdigo de dialeto SQL utilizado pelo cliente. Indica quais sero as aes monitoradas pelo objeto TIBSQLMonitor.

LoginPrompt SQLDialect TraceFlags

Principais Eventos
AfterConnect AfterDisconnect BeforeConnect BeforeDisconnect OnIdleTimer OnLogin Ocorre aps a conexo ser realizada. Ocorre aps a conexo ser terminada. Ocorre ao pedido de conexo. Ocorre ao pedido de trmino da conexo. Ocorre enquanto o cliente espera por uma resposta do servidor. Este evento pode ser usado para subtituir o pedido de username e password do objeto. Ao definir alguma rotina neste evento, automaticamente a janela de login no ser exibida e o nome e a senha devero ser passados via cdigo.

Delphi 5 - Novos Recursos

TIBTransaction
Um dos componentes mais interessantes da nova palheta. O componente IBTransaction representa a instncia da transao atual e simplifica muito o controle de transaes. Com este objeto, possvel controlar transaes concorrentes originrias da mesma conexo com o banco de dados, ou em Threads independentes.

Principais Propriedades:
Active DefaultAction Quando True, executa o mtodo StartTransaction no servidor. Indica qual sera o metodo executado quando a aplicacao exceder o tempo de idle time out, ou seja quando nenhum comando for mais enviado para o servidor. Seus possiveis valores so: taRollback Executa a instruo RollBack. taCommit Executa a instrucao Commit. taRollbackRetaining Executa a instruo RollBack, e mantm o handle da transao aberto(os dados continuam na tela). Disponvel apenas na verso 6.0 ou superior do Interbase. TaCommitRetaining Executa a instruo Commit e mantm o handle da transao aberto(os dados continuam na tela). Indica a instncia do banco de dados no qual a transao ser iniciada. Especifica quanto tempo o objeto ir esperar para executar o mtodo especificado na propriedade DefaultAction. O tempo comea a ser contado a partir que nenhuma instruo for enviada para o servidor.

DefaultDatabase IdleTimer

Principais Eventos
OnIdleTimer Ocorre enquanto a aplicao no envia nenhuma instruo SQL para o servidor.

Delphi 5 - Novos Recursos

Principais Mtodos:
Commit CommitRetaining Rollback RollbackRetaining Confirma a transao no servidor. Confirma a transao e mantm o handle aberto. Neste caso, os dados permanecem na tela. Cancela a transao atual. Cancela a transao e mantm o handle aberto. Neste caso, os dados permanecem na tela. Disponvel apenas a partir da verso 6 do Interbase. Inicia a transao. Rettorna a mensagems de erro baseado no Error Code passado como parmetro.

StartTransaction Call

TIBTable
Representa uma conexo com alguma tabela do banco de dados. Equivalente ao objeto TTAble da palheta DataAccess. O uso do objeto TIBTable apresenta desvantagens em relao ao uso do objeto TIBQuery, visto que este componente envia uma quantidade de instruo muito maior ao servidor. recomendavel o uso do objeto TIBQuery.

Principais Propriedades
Active Database TableName Transaction Abre a conexo com a tabela. Objeto TIBDatabase. Nome da tabela dentro do banco de dados. Objeto TIBTransaction, que representara a transao ativa para as aes executadas atravs deste objeto.

Os demais mtodos e eventos so os mesmos encontrados no objeto TTable, da palheta DataAccess.

TIBQuery
Representa uma conexo SQL com o banco de dados. Praticamente toda a linguagem SQL(DDL/DML) suportada pelo banco de dados pode ser utilizada atravs deste objeto. Para utilizar o objeto TQuery como um objeto de edio, e recomendvel o seu uso juntamente com o objeto TUpdateSQL.

Delphi 5 - Novos Recursos

Principais Propriedades
Database SQL Transaction Objeto TIBDatabase, que representa a instncia do banco de dados. Cdigo SQL a ser enviado para o servidor. Objeto TIBTransaction, que representar a transao ativa para as aes executadas atravs deste objeto.

Os demais eventos e mtodos deste objeto so os mesmos encontrados no objeto TQuery, da palheta DataAccess.

TIBStoredProc
Permite executar uma procedure armazenada Equivalente ao objeto TStoredProc, da palheta DataAccess. no servidor.

Principais Propriedades
DataBase StoredProcName Objeto TIBDatabase, que representa instncia do banco de dados Nome da procedure armazenada. a

Os demais eventos e mtodos so os mesmos do objeto TStoredProc.

TIBUpdateSQL
Permite configurar o objeto TIBQuery ReadOnly para trabalhar com Live Result Sets. Com este objeto, possvel definir instrues SQL para cada mtodo Append, Edit ou Delete. O objeto UpdateSQL garante maior performance para editar uma tabela, pois a query trabalha em modo ReadOnly.

Principais Propriedades
InsertSQL ModifySQL DeleteSQL Define a instruo SQL a ser executada quando o mtodo Append for chamado. Define a instruo SQL a ser executada quando a tabela for editada. Define a instruo SQL a ser executada quando algum registro for deletado.

Delphi 5 - Novos Recursos

RefreshSQL

Define a instruo SQL a ser executada quando o mtodo Refresh for executado.

Os demais eventos e metodos so os mesmos do objeto TUpdateSQL, da palheta DataAccess.

TIBDataSet
Este componente o objeto ancestral para os componentes de acesso a dados da palheta Interbase. Sua utuilizao no escencial, pois o objeto TQuery possui todos os seus recursos.

Principais Propriedades
Active BufferChunks Database DeleteSQL InsertSQL ModifySQL RefreshSQL SelectSQL UpdateRecordTypes Indica se a query sera aberta. Numero de registros no buffer. Objeto TIBDatabase, que representa o banco de dados atual. Instruo SQL que ser executada quando algum registro for deletado. Instruo SQL que ser executada quando algum registro for inserido. Instruo SQL que ser executada quando algum registro for alterado. Instruo SQL que ser executada quando o metodo Refresh for chamado. Instruo SQL que ser executada quando a query for aberta. Indica quais registros estaro visveis quando a propriedade CachedUpdates estiver setada para True. Por default, as propriedades cusModified, cusInserted, e cusUnmodified estao setadas para True, o que significa que os registros atuais e inseridos estaro visveis.

Principais Eventos
OnAfterDatabaseDisconnect Ocorre aps o trmino da conexo com o banco de dados.

Delphi 5 - Novos Recursos

OnAfterTransactionEnd

BeforeDatabaseDisconnect OnBeforeTransactionEnd DatabaseFree TransactionFree

Ocorre aps a execuo de uma transao (com COMMIT ou ROLLBACK). Este evento captura apenas as transacoes hard, ou seja, terminadas com o metodo Commit ou RollBack. Os mtodos CommitRetaining e RollbackRetaining no so capturados por este evento. Ocorre antes do trmino da conexo com o banco de dados. Ocorre antes da execuo de um comando Commit ou RollBack. Ocorre aps a liberao dos handles alocados pelo objeto TIBDatabase. Ocorre aps a liberao dos handles alocados pelo objeto TIBTransaction.

Os demais mtodos deste objeto so mesmos encontrados na classe TDataSet, pai de vrios componentes como TTable e TQuery.

TIBSQL
Componente para executar instrues SQL. Sua diferenca para com o objeto TQuery, que este apresenta a maior performance de execuo, e aloca o mnimo de recursos possveis. Em contrapartida, este objeto no oferece interface para conexo com objetos DataControl ele apenas executa as instrues. recomendvel o seu uso em operaes que exijam uma rpida performance, como por exemplo, rotinas de backup. Este componente tambm pode ser utilizado para criao de aplicacoes DSQL (Dynamic SQL), ou seja, aplicaes em que o prprio usurio cria as intrues SQL.

Principais Propriedades
Database GoToFirstRecordOnExecute Objeto TIBDatabase que representa o banco de dados atual. Se True, vai para o primeiro registro aps a execuo de uma intruo SQL Live Result Set

Delphi 5 - Novos Recursos

ParamCheck

SQL Transaction

Esta propriedade deve ser True quando o objeto TIBSQL possuir uma instruo SQL DDL com parmetros. Se True, o objeto ir prevenir de no misturar os parmetros definidos na propriedade SQL com os parmetros contidos dentro da instruo SQL. Por exemplo, se a instruo criar uma Stored Procedure com um parmetro, setar esta propriedade para True ir prevenir o objeto de tentar substituir o parametro da instruo CREATE PROCEDURE por um valor da propriedade Params. Instruo que ser executada. Objeto TIBTransaction que ir representar a transao atual.

Principais Eventos
OnSQLchanging Ocorre quando modificada. a instruo SQL

Principais Metodos
Call Function Call(ErrCode: ISC_STATUS; RaiseError: Boolean): ISC_STATUS; Retorna a mensagem de erro correspondente ao cdigo de erro. Gera uma exceo quando a query est aberta. Gera uma exceo quando a query est fechada. Gera uma exceo se a query no possuir uma clusula SQL vlida. Elimina os handles gerados pela query. function Current: TIBXSQLDA; Retorna o tipo IBXSQLDA atualmente alocado pela query. Este descriptor representa uma rea de transferncia de dados entre o banco de dados e aplicao cliente. Toda execuo de uma instruo SQL cria uma instncia deste Record. Executa a query SQL. Utilizado para acessar um campo da tabela atravs de seu nome.

CheckClosed CheckOpen CheckValidStatement Close Current

ExecQuery FieldByName

Delphi 5 - Novos Recursos

Next Prepare

Move o ponteiro para o prximo registro. Utilizado antes de passar parmetros para o objeto. Permite preparar uma Query para execuo.

TIBDatabaseInfo
Retorna varias informaes a respeito do banco de dados especificado. Basta inserir um componente TIBDatabaseInfo, configurar sua propriedade Database para o objeto TIBDatabase correspondente, e capturar os valores de suas propriedades.

Principais Propriedades:
Allocation BackoutCount BaseLevel CurrentMemory DataBase DBFilename DbImplementationClass DbImplementationNo DbSiteName DbSQLDialect DeleteCount ExpungeCount Fetches ForcedWrites InsertCount Marks MaxMemory Retorna o nmero de pginas alocadas. Indica o nmero de vezes que um registro do banco de dados foi removido. Retorna o nmero de verso do banco de dados. Retorna a quantidade de memria atualmente alocada pelo servidor. Objeto TIBDatabase, que indicar o banco de dados provedor das informaes. Retorna o nome do arquivo de banco de dados. Retorna o nmero de classe do banco de dados. Retorna o nmero de implementao do banco de dados. Retorna o nome do site do banco de dados. Retorna o nmero SQL Dialect atualmente utilizado pelo servidor. Retorna o nmero de Deletes executados desde a ltima conexo com o servidor. Retorna o nmero de registros removidos. Retorna o nmero de Fetchs realizados. Indica como a gravao de dados est sendo realizada. 0 para assncrono e 1 para scrono. Retorna o nmero de Inserts executados desde a ltima conexo com o servidor. Retorna o nmero de gravaes efetuadas no buffer Retorna, em bytes, a quantidade de memria utilizada desde a primeira conexo realizada

Delphi 5 - Novos Recursos

NoReserve NumBuffers ODSMajorVersion ODSMinorVersion PageSize PurgeCount ReadIdxCount ReadOnly Reads ReadSeqCount SweepInterval UpdateCount UserNames Version Writes

Indica se espao reservado para backup de registros modificados no banco Indica o nmero de buffers alocados Retorna a parte superior da verso do ODS Retorna a parte inferior da verso do ODS Retorna o nmero de bytes alocados por pgina Retorna o nmero de Purgings realizados Retorna o nmero de leituras realizadas atravs de ndices. Indica quando o banco de dados ou no read-only Retorna o nmero de pginas lidas no banco Retorna o nmero de leituras seqenciais realizadas nas tabelas do banco Retorna o nmero de transaes confirmadas entre sweeps Retorna o numero de Updates executados desdes a ltima conexo com o servidor. Retorna em uma lista de String, os usurios conectados no banco de dados. Retorna a verso do Interbase. Retorna o nmero de pginas de dadosescritas no banco.

TIBSQLMonitor
Permite criar um log de todas as operaes e instrues SQL que foram enviadas ao servidor. Como o aplicativo SQL Monitor no pode monitorar as intrues SQL enviadas pelos componentes Interbase(pois trabalha no nvel da camada BDE), o desenvolvedor precisa usar este componente para monitorar e otimizar a aplicao cliente. O uso deste objeto muito simples. No existem propriedades a serem configuradas, basta inserir um componente IBSQLMonitor na aplicao(ou em outro aplicativo). Aps, o usurio deve configurar a propriedade TraceFlags do objeto Database da aplicao cliente, indicando quais sero os comandos filtrados pelo objeto IBSQLmonitor. As instrues SQL podem ser capturadas atravs do evento OnSQL do objeto. Este evento passa um parmetro EventText, do tipo string, indicando o comando enviando para o servidor. Por exemplo, a aplicao poderia ter um ListBox para receber as instrues:

procedure TForm1.IBSQLMonitor1SQL(EventText: String);

Delphi 5 - Novos Recursos

begin ListBox1.Items.Add(EventText); end;


Com este cdigo, todos os comando enviados ao servidor (definidos na propriedade TraceFlags do objeto Database) seriam exibidos no ListBox.

TIBEvents
Componente para utilizar os eventos do Interbase. O conceito de eventos no Interbase muito interessante: o desenvolvedor pode programar eventos no banco de dados, que sero executados em instrues como INSERT, UPDATE ou DELETE. Estes eventos podem ser programados em Triggers ou Stored Procedures, e as aplicaes que registrarem os eventos atravs do objeto TIBEvents, recebero uma notificao toda vez que algum registro for inserido ou deletado, por exemplo. Este objeto muito til para criar telas de refresh automtico. Por exemplo, um evento poderia ser criado toda vez que um registro for inserido na tabela. Todas as mquinas clientes iriam receber este evento, e o software poderia ser programado para dar um Refresh em suas Querys abertas, criando o efeito de Refresh automtico sem causar Overhead de CPU. Este objeto roda em um Thread separado, e no degrada a performance do sistema.

Principais Propriedades
Database Events Registered Objeto TIBDatabase, que representa o banco de dados atual. Nome dos eventos que sero recebidos pelo objeto. Se True, indica que o objeto estar ativo.

Principais Eventos
OnEventAlert Ocorre quando algum evento recebido pelo objeto. Setar o parmetro CancelAlerts para True, indica que o evento recebido dever ser ignorado. Para retornar e receber determinado evento, basta chamar o mtodo QueueEvents. Nem todas as operaes envolvendo objetos da VCL podero ser executadas neste evento, visto que ele roda em um Thread separado.

Delphi 5 - Novos Recursos

Principais Metodos
CancelEvents QueueEvents RegisterEvents UnRegisterEvents Cancela o recebimento dos eventos pendentes. Indica ao objeto para iniciar o recebimento dos eventos. Registra os eventos listados na propriedade Events. Este mtodo j executa o mtodo QueueEvents. Cancela o recebimento dos eventos listados na propriedade Events.

Delphi 5 - Novos Recursos

Palheta Servers
Esta palheta permite uma conexo COM(Components Object Model) com aplicativos da famlia Office. O Controle destes aplicativos j estavam disponveis no Delphi 4, atravs de OLE Automation, porm, a interface COM o mais novo padro da Microsoft e, alm de oferecer mais poder ao desenvolvedor, ser a tendncia dos novos aplicativos para Windows. A arquitetura COM se baseia em pequenos objetos, com funcionalidade prpria, que podem se conectar a outros objetos e formar o aplicativo. Nesta viso, podemos dizer que o Word e o Excel so, na verdade, um grande conjunto de objetos COM interfaceados e fornecendo uma soluo integrada. Este objetos podem ser acessados por objetos COM de outros aplicativos, e a reutilizao de funes pode ser conseguida de uma maneira muito prtica. Vamos imaginar, por exemplo, que estivssemos construindo uma aplicao calculadora cientfica em C++. Primariamente, deveramos construir quatro objetos COM: um para cada operao matemtica bsica (somar, diminuir, multiplicar e dividir). Com estes quatro objetos, poderiamos prosseguir e criar mais quatro: fatorial, porcentual, seno e cosseno. Teramos uma famlia de objetos COM parecida com a ilustrao abaixo:

Soma Multiplicao

Subtrao Diviso

Passo 1: Criao dos objetos bsicos.

Fatorial
Soma Subtrao Multiplicao Diviso

Percentual Cosseno

Seno

Passo 2: Criao de novos objeto a partir dos objetos bascos.

Delphi 5 - Novos Recursos

Com a calculadora criada, imaginemos agora que iniciaremos a construo de um aplicativo contbil em Delphi. Certamente iremos precisar das funes imbutidas na calculadora, mas no queremos reescrever o cdigo. Teramos trs opes: Criar uma DLL em C com as funes da calculadora exportadas; Criar um objeto .OCX contendo as funcoes da calculadora; Utilizar os objetos COM do aplicativo calculadora diretamente da aplicao DELPHI; Neste caso, a opo 3 oferece as vantagens: No caso da DLL, se alguma funo fosse includa, deveramos nos preocupar em atualizar tanto a DLL quanto a aplicao cliente, visto que esta precisa de um header para importar as funes. Outro problema se refere a memria, pois a DLL seria carregada uma vez para cada processo. Isto tambem vale para a OCX, j que cada processo cria uma instncia completa da OCX em questo. J ao utilizarmos o objeto COM diretamente do aplicativo calculadora, teramos maior facilidade para manuteno, j que no precisaramos declarar headers nas aplicaes clientes. Outro ponto positivo se deve ao fato de que apenas os objetos necessrios seriam instanciados, e no todo o aplicativo (a DLL e a OCX seriam carregadas por completo na memria, mesmo que estivssemos utilizando apenas uma parte do todo). Podemos tambm oferece a calculadora como um objeto distribuido (DCOM Distributed COM), e instalar o aplicativo apenas no servidor. As mquinas clientes iriam se conectar ao objeto COM atravs da LAN, e desta forma, ao atualizar alguma das funes do objeto, deveramos apenas atualizar a calculadora no servidor, nada mais. A palheta Servers oferece a funcionalidade COM dos aplicativos da famlia Office. Entendemos isto como: MSWord, MSExcel, MSPowerPoint, MsBrinder, MSOutlook e MSAccess. E importante notar que qualquer outro aplicativo ou objeto COM pode ser acessado atravs do Delphi, porm via cdigo. A funcionalidade COM dos aplicativos Office muito extensa, e o objetivo desta apostila no o de ser uma referncia sobre o assunto. Segue abaixo alguns exemplos prticos sobre o uso desta palheta:

Inicializando o Word
Insira um componente TWordApplication e utilize o codigo:

WordApplication1.Connect; WordApplication1.Visible := True;

Delphi 5 - Novos Recursos

Abrindo um documento em branco no Word:


Insira um objeto TWordDocument, e execute o metodo NewInstance:

WordDocument1.Activate; (no e necessario) WordDocument1.NewInstance;

//Exibe o aplicativo Word //Cria um novo documento

Inserindo texto no final do arquivo:


var Texto :WideString; begin Texto := 'WorkShop Delphi 5 Novos Eecursos' +chr(13)+chr(10)+ 'www.clubedelphi.com.br'; WordDocument1.Content.InsertAfter(t);

Substituindo uma palavra:


Neste caso, a palavra de indice 2 sera substituida pela string Borland Delphi.

WordDocument1.Words.Item(2).Text:= 'Borland Delphi';

Alterando a formatao de uma palavra:


Insira um objeto TWordFont e um TWordDocument. Em seguida, digite o codigo:

Var T: WideString; begin WordFont1.ConnectTo(WordDocument.Content.Font); WordFont1.Bold:=1; WordFont1.Italic:=1; WordDocument1.Content.InsertAfter(t); //o texto inserido com a formatacao negrito e italico End;

sera

Delphi 5 - Novos Recursos

Inserindo texto no meio de um arquivo :


var T: WideString; begin T := 'Clube Delphi'; WordDocument1.Words.Item(2).InsertAfter(t); //Este comando ira inserir a string 'Clube Delphi' apos a Segunda palavra end;

Inserindo uma figura dentro do arquivo:


var formato : Word; Data : THandle; Palette: HPALETTE; begin Image1.Picture.SaveToClipBoardFormat(Formato,Data,Palett e); //copia o conteudo do objeto image para o clipboard ClipBoard.SetAsHandle(Formato,Data); WordDocument1.Content.Paste; //cola a area de transferencia dentro do documento end;

Delphi 5 - Novos Recursos

Control Panel Applet


Arquivos .CPL agora podem ser facilmente criados com o Delphi. Arquivos CPL (Control Panel Extension) nada mais so do que os aplicativos reconhecidos pelo Windows como contedo do Painel de Controles. Um arquivo CPL possui a mesma estrutura de um arquivo executvel, porm, seu cabealho diferente.

Cada cone representa um arquivo .CPL, localizado no diretrio Windows/System

Vejamos como criar uma aplicao CPL:


V no Object Repository e selecione Control Panel Application; Repare que um objeto TAppletModule ser exibido:

Delphi 5 - Novos Recursos

Crie agora o formulrio que ser chamado pela aplicao, atravs do menu File, New form. Selecione o objeto AppletModule1 e altere o seu evento OnActivate:

procedure TAppletModule1.AppletModuleActivate(Sender: TObject; Data: Integer); begin Form1.ShowModal; end;


Altere as propriedades do objeto AppletModule1 de acordo com a tabela abaixo: AppletIcon Caption Help cone que ser exibido no Painel de Controle. Selecione algum arquivo .ICO do diretrio de imagens do Delphi. Texto que ir aparecer abaixo do cone, representando o nome da aplicao. Digite Teste. Texto que ser exibido na barra de status do painel de controle. Digite Aplicao de teste.

Em seguida, salve o projeto. Clique com o boto direito sobre o objeto AppletModule1 e selecione a opo Install Control Panel Applet, para que a aplicao seja copiada para o diretrio System do Windows. Abra o Painel de Controle e teste o seu aplicativo! Nota: O processo de instalao do aplicativo no Painel de Controle se limita apenas cpia do arquivo .CPL para o diretrio System do

Delphi 5 - Novos Recursos

Windows. Nenhum tipo de alterao no registro necessrio. O mesmo vale para a desinstalao do aplicativo.

Objeto TAppletModule Principais Propriedades:


AppletIcon Caption Help ResidIcon ResidInfo ResidName cone que ser exibido no Painel de Controle. Texto que ir aparecer abaixo do cone, representando o nome da aplicao. Texto que ser exibido na barra de status do painel de controle. Indica o nmero do cone a ser exibido. Lembre-se que um aplicativo pode possuir vrios cones. Indica o nmero do Resource da string de help. Vrias strings de Help s podem ser adicionadas com um editor de recursos. Indica o nmero do Resource da string referente ao Caption. Vrios Captions s podem ser adicionados com um editor de recursos.

Principais Eventos
OnActivate OnInquiry OnStop OnStartWParams OnCreate OnDestroy Ocorre quando o usurio inicia a aplicao atravs do painel de controle. Ocorre quando o Windows(Painel de Controle) l as informaes de recurso do aplicativo, como cones, textos e outros. Ocorre quando o Windows (Painel de Controles) inicia o processo de ShutDown do aplicativo. Ocorre quando o aplicativo iniciado por outro aplicativo, e no pelo usurio. Ocorre quando o AppletModule instanciado. Ocorre quando o AppletModule removido da memria.

Delphi 5 - Novos Recursos

Delphi 5 - Novos Recursos

Internet Express
Esta palheta vem adicionar um recurso muito interessante para o desenvolvedor Delphi: o fato de poder exportar dados em formato XML. A XML (Extended Markup Language) uma extenso da HTML, e traz vrias melhorias no sentido de performance e flexibilidade. Uma das principais diferenas para quem trabalha com banco de dados, que a XML bufferiza os dados no Browser, no necessitando executar um pesado Request a cada movimentao de registro feita pelo usurio. Enviar e receber dados em pacotes XML uma tarefa que tambm necessita de uma camada MIDAS para captura da informao no banco de dados. Note a diferena de camadas em uma aplicacao ISAPI normal e uma aplicacao ISAPI XML:

Servidor WEB

Servidor WEB

Aplicao CGI

Midas Server

CGI XML

Pedido (Request)

Resposta (Response)

Pedido (Request)

Buffer dos registros. Browser Cliente

Browser Cliente

Delphi 5 - Novos Recursos

Vamos criar passo a passo uma aplicao para prover informaes em pacotes XML:
Primeiramente, devemos criar o pequeno servidor MIDAS que ir buscar as informaes no banco de dados. Crie um novo projeto no Delphi: Dentro da nova aplicao, abra o Repositrio de Objetos; Selecione a aba MultiTier; Clique duas vezes sobre o item Remote Data Module, que a janela a seguir ir aparecer;

Confira na tabela abaixo o significado das opes: CoClassName Instancing Nome da classe que ser registrada no Windows; Indica como o Datamodule ser instanciado. Os possveis valores so: Internal Cria a instncia do DataModule dentro do prprio processo. Recomendvel quando o servidor que estiver sendo construdo for uma DLL; Single Instance Uma instncia da aplicao ser criada para cada cliente conectado; Multiple Instance Apenas uma instncia da aplicao ser criada. Uma instncia do DataModule ser criada para cada cliente conectado, porm, dentro do espao de processo da aplicao.

Delphi 5 - Novos Recursos

Threading Model

Utilizado apenas quando o Remote Data Module est sendo criado dentro de uma DLL. Confira os possveis valores: Single Somente uma requisio ser processada por vez. As demais permanecero em fila; Apartment O Datamodule1 instanciado para cada requisio do cliente. Nesta situao, os dados esto seguros, pois todos os acessos sero safe-thread, ou seja, livre de conflitos de memria. Esta opo recomendvel para aplicaes que utilizem o BDE; Free Este thread Ter um comportamento parecido com Apartment, porm, neste caso, os dados no estaro Thread-Safe. As concorrncias devero ser tratadas para que um conflito de acesso a memria no ocorra; Both Igual a opo Free, porm, o retorno para o cliente ser feito em fila, e no em threads.

Baseado nisto, vamos configurar a caixa de dilogo conforma a tabela abaixo: CoClassName Instancing Tread Model COMidasServer Multiple Instance Apartment

Aps dar OK na caixa de dilogo, o objeto TremoteDataModule ir aparecer:

Delphi 5 - Novos Recursos

Primeiramente, devemos colocar um objeto TSession, que ir controlar as aes de vrios usurios concorrentes dentro da aplicao. importante tambm configurar a propriedade AutoSessionName para TRUE. Esta propriedade ir criar um nome de seo diferente para cada usurio conectado na aplicao. Aps, um objeto Database deve ser inserido no DataModule1. Configure corretamente o objeto database para que aponte para o alias DBDEMOS. E, em seguida, coloque um objeto Ttable no DataModule. Linke o table com o objeto Database e aponte-o para a tabela Animals. Devemos agora inserir o objeto que ira prover os dados para a aplicacao XML. Este objeto ser da classe TdataSetProvider, e ele se encontra na palheta MIDAS. Coloque um objeto DataSetProvider e configure-o de acordo com a tabela abaixo: DataSet Name Table1 ProviderAnimals

E OK! Salve a aplicao e gere o executvel. A partir deste momento teremos um servidor midas instalado na maquina. Devemos agora criar a aplicacao XML, que ir recuperar os dados atravs do servidor MIDAS e fornec-los para a mquina cliente atravs do protocolo HTTP. Crie uma nova aplicao no Delphi.

Delphi 5 - Novos Recursos

Abra o repositrio de objetos e selecione a opo Web Server Application. A janela de seleo Web Server Application ser exibida:

ISAPI/NSAPI

CGI

Win/CGI

A aplicao ser gerada em forma de DLL. Esta opo ir oferecer melhor desempenho e menos consumo de memria. A aplicao ser gerada em forma de executvel (.EXE). Esta opo, apesar de ser bem prtica, oferece desempenho inferior ao ISAPI. Variao do CGI criada para ser utilizada em servidores Windows 16 bit.

Selecione a opcao ISAPI e d OK. Um novo objeto TwebModule ser exibido:

Delphi 5 - Novos Recursos

Primeiramente, coloque um objeto TDCOMConnection (palheta MIDAS). Este objeto ir realizar a conexo com nosso servidor MIDAS. Configure suas propriedades de acordo com a tabela abaixo: ServerName ComputerName Nome do servidor Midas a ser conectado Deve ser preenchido apenas quando o servidor midas no estiver local. Neste caso, o nome da mquina onde o servidor est instalado deve ser assinalado nesta propriedade TRUE

Connected

Em seguida, insira dois objetos TXMLBroker (palheta MIDAS) dentro do WebModule. Este objeto ir recuperar os dados das tabelas contidas dentro do servidor. Configure suas propriedades de acordo com a tabela abaixo: Name RemoteServer ProviderName XMLBroker1 Objeto TDCOMConnection, que representa a conexo com o servidor MIDAS. Selecione DCOMConnection1 Nome do objeto DataSetProvider que representa as tabelas exportadas pelo servidor MIDAS. Selecione ProviderAnimals. XMLBroker2 DCOMConnection1 ProviderClients

Name RemoteServer ProviderName

Em seguida, devemos inserir a ltima classe requerida, TmidasPageProducer. Este objeto ir criar a pgina XML baseada nos dados da tabela. Insira um objeto TmidasPageProducer no formulrio. Selecione o objeto MidasPageProducer1 e d um clique duplo sobre a propriedade WebPageItems do objeto. O Editor HTML ser exibido:

Delphi 5 - Novos Recursos

Clique com o boto direito sobre o item MidasPageProducer1 e selecione a opo New Component.Em seguida, escolha Dataform. Aps, clique com o boto direito sobre o novo item, DataForm. Desta vez, selecione Datagrid. Selecione o novo item, DataGRid1 e configure sua propriedade XMLBroker para o nome do objeto XMLBroker que ir prover os dados convertidos em XML. Neste caso, selecione XMLBroker1. Repare que o DbGrid j ir exibir o ttulo das colunas. O ltimo passo criar uma ao para executar este MidasPageProducer. Clique com o boto inverso no objeto WebDataModule e selecione a opo actions editor. No editor de aes, crie uma nova ao atravs do boto New Action. Um objeto TwebAction ser criado. Configure suas propriedades de acordo com a tabela abaixo: Default TRUE. Isto ir executar est quando o usurio digitar o nome do aplicativo no browser, sem nenhum parmetro. Ex: www.clubedelphi.com.br/project1.exe Nome do objeto responsvel pela reposta ao cliente. Neste caso, ser o objeto MidasPageProducer1, que retornar uma pgina XML para o cliente.

Producer

Delphi 5 - Novos Recursos

PathInfo

Parmetro que o usurio dever digitar na URL para executar esta ao. Como esta a ao default, no necessrio informar esta propriedade

E Ok! Compile o projeto, e repare que o aplicativo project1.dll ser adicionado no diretrio da aplicao. O prximo passo copiar o aplicativo para algum diretrio de aplicaes do servidor WEB. No diretrio da aplicao, alguns arquivos JavaScript devero ser copiados. Estes arquivos esto no diretrio <Delphi>\Source\WebMidas: Xmldb.js Xmldisp.js Xmldom.js Xmlerrdisp.js Xmlshow.js importante notar que o servidor WEB dever estar corretamente configurado e ajustado para que a aplicaco funcione de forma estvel.

Utilizando o DBNavigator com XML


Vamos criar um outro tipo de interface para a nossa Homepage: Os dados sero exibidos em campos e o usurio poder navegar entre eles atravs de uma barra de navegao. Para a construo deste exemplo, abra o cliente XML construdo anteriormente. Insira um novo MidasPageProducer. Com este, iremos contruir a nova pgina de visualizao dos dados. D um clique duplo sobre a propriedade WebPageItems, para que o editor de pginas seja exibido. Selecione o item MidasPageProducer1 e clique com o boto inverso do mouse. Selecione a opo New Component... Na janela de seleo, selecione a opo DataForm. Clique sobre o item dataform1 e pressione o boto inverso do mouse. Selecione a opo FieldGroup. Clique novamente sobre o item Dataform1 e adicione o item DataNavigator.

Delphi 5 - Novos Recursos

Ok! Ser necessrio criar uma ao para este PageProducer. Clique com o boto inverso sobre o WebDataModule e selecione a opo Action Editor. Crie uma nova ao e configure sua propriedade Producer para o objeto MidasPageProducer2, que acabara de ser criado. Compile o projeto e instale-o no servidor Web. Para testar a aplicao basta digitar a url: http://servidorweb/diretorio_da_aplicao/project1.exe/MidasPage Producer2 E o resultado ser parecido com a ilustrao abaixo: