Lairton,
 
Obrigado pelas respostas e aproveito para expor mais algumas dúvidas:
 
Exemplo:
 
Na classe IC_odEmpresa possuo os métodos odInsere, odUpdate, odDeleta e odSelect. Imagine que uma aplicação utiliza uma tela de login e alimenta as variáveis  SqlDatabase, SqlUser e SqlPassword e conecta em um hSqlHandle.
 
A única maneira que eu consegui foi enviando para cada método as variáveis SqlDatabase, SqlUser e SqlPassword por parâmetro e conectando dentro do método.
Acredito que isso não seja a maneira mais adequada.
 
1 - Para que os métodos enxerguem as variáveis do sistema eu só consigo enviando-as por parâmetro ?
2 - Se não é obrigatório a conexão dentro de cada método como fazer para que ele enxergue um hSqlHandle fora dele ?
3 - Se eu definir na classe IC_odEmpresa algumas variáveis de classe ou de instância como fazer para que uma classe derivada dela (outro COM) enxergue essas variáveis ?
 
mais uma vez agradeço a atenção

 -----Mensagem original-----
De: Lairton N de Almeida Jr [mailto:[EMAIL PROTECTED]]
Enviada em: Terça-feira, 11 de Julho de 2000 12:06
Para: [EMAIL PROTECTED]
Assunto: Re: [sqlwin] Windows DNA com componentes COM CTD2000
Prioridade: Alta

Olá Antonio,
 
Vou tentar responder suas dúvidas.
 
Sobre componentes lembrar duas coisas:
 
1 - O MTS é utilizado pelo WindowsNT e o Component Service é a versão do MTS pro Windows 2000.
 
2 - Quem faz o controle das transações dos componentes COM é o MTS e não nossa aplicação. É o MTS quem efetivamente executa o "commit" ou o "rollback" ( não são usados estes nomes ok , mas sim, "SetComplete" e "SetAbort" )
 
Respondendo suas perguntas ....
 
1 -
 
a) os componentes devem ser configurados no MTS para serem "donos" ou "filhos" de uma transação. Observe na página 345 do livro Programando com o CTD2000 no tópico "Configurando as propriedades do componente".
 
b) O método odInsere() faz essa conexão e desconexão por causa do exemplo dado. Na verdade cada componente pode fazer suas próprias conexões e ao término das suas atividades chamar SetAbort caso algo dê errado e a transação como um todo não possa ser efetivada pelo MTS junto ao banco de dados. O fato do componente chamar SqlDisconnect não fará com que o banco de dados dê um "commit" implicito (como ocorre hoje)  pelo fato de que o MTS é quem está controlando isso.
 
2 - Conforme explicação acima , Não.
 
3 - De acordo com a documentação do COM podemos usar apenas os tipos de dados String, Number e Date na passagem de parâmetros entre componentes, não podemos usar handles (que é um tipo de dado que só o SQLWindows entende).
 
4 - Sempre que você modificar qualquer coisa na Interface. Por exemplo: quando adicionar uma função ou modificar a lista de parâmetros.
 
5 - Apenas as DLLs geradas pelo Object Compiler.
Teoricamente você não conseguiria usar as as DLLs geradas pelo SQLWindows como componentes COM pois elas precisam das definições das classes.
 
6 - SIM. Pois para o COM o que vale é o GUID e não o nome do objeto.
 
7 - Instale apenas o Deploy.
 
Eu acho ótimo que apareçam dúvidas neste sentido aqui na lista e procurarei sempre ajudar no que estiver ao meu alcance.
 
Peço desculpas por passar pouco mais de uma semana sem responder mensagens à lista, estava me recuperando de uma cirurgia.
Agora estou de volta.
 
Com relação ao livro Programando com o Centura Team Developer 2000 - estamos preparando um site, o CenturaExplorer, que terá muito conteúdo sobre ele, muitas explicações, porém estamos enfrentando alguns problemas para colocá-lo no ar por isso ainda não havia anunciado aqui na lista. Mas como algumas pessoas já estão com o livro, pois compraram o produto CTD2000 e por isso receberam o livro, eu gostaria que vocês soubessem que o livro Programando com o Centura Team Developer 2000 (608 páginas) está pronto e que já tenho disponibilidade para entrega imediata. Os interessados em adquirir o livro diretamente comigo podem enviar um e-mail para [EMAIL PROTECTED] informando a cidade para onde o livro será enviado via sedex para que possamos informar o preço, que varia de acordo com a cidade.
O prazo de entrega é de aproximadamente 24 horas após a confirmação do depósito na conta que será informada.
 
Maiores detalhes sobre o livro por favor enviem e-mail para [EMAIL PROTECTED]
 
 
Atenciosamente,
Lairton N de Almeida Jr.
----- Original Message -----
Sent: Monday, July 10, 2000 12:54 PM
Subject: [sqlwin] Windows DNA com componentes COM CTD2000

Lairton,
 
Estamos estudando a arquitetura Windows DNA e o uso de componentes COM no CTD2000 com o objetivo de desenvolver aplicações para internet e possivelmente converter nosso sistema corporativo.
 
Apesar do livro e do próprio help do Centura, estou encontrando algumas dificuldades. O que me preocupa é que percebi que até esta data, na lista de discussão e no fórum da Triad ainda não encontrei nenhuma pergunta ou resposta relacionada a isso e não temos ainda disponibilidade de curso avançado do CTD2000.
 
Gostaria de agradecer pelo livro que está sendo de excelente ajuda e aproveitar para colocar algumas dúvidas:
 
1 - No exemplo do capítulo 15 do livro, em exCap23_02.apl o método odInsere conecta com o banco de dados, faz a inclusão do registro e desconecta. Como fica se vários componentes como esse fizerem parte de uma transação ?
 
2 - Para trabalhar com componentes COM no CTD2000 é obrigatório efetuar a conexão dentro de cada método ?
 
3 - Suponha que eu tenha as classes A, B, C e D (COM) e desejo fazer somente uma conexão com o banco de dados (login e conexão na aplicação). Como fazer para que os métodos das classes enxerguem o hSqlHandle se eles não aceitam que o tipo de dados Sql Handle sejam passados como parâmetros ?
 
4 - Quando é necessário re-gerar uma Type Library ?
 
5 - Posso usar as DLLs geradas pelo Centura através da Externall Functions ?
 
6 - Quando um arquivo fonte de uma classe COM (DLL) A é duplicado para B o número GUID que já vem no B é igual o de A para registrar a DLL B é necessário pegar outro número ?
 
7 - É necessário ter o centura instalado no servidor para registrar as DLLs ou existe outro meio de registrar dlls construídas no Centura ?.
 
Desculpe a quantidade de perguntas mas qualquer uma delas esclarecidas já servirá de grande ajuda.
 
grato
 
Tel/Fax  (5511) 5071-9249
Celular   (5511) 9900-4895
 

Responder a