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.
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