• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

_Rest_

[vb6] CursorType: adOpenStatic ou adOpenDynamic

11 mensagens neste tópico

Alguém pode falar um bocado sobre as diferenças entre adOpenStatic ou adOpenDynamic (propriedades do CursorType), é que eu tenho uma dúvida. Tipo para uma aplicação que tem a BD num server e existe vários users a aceder a BD, convêm ser Dynamic para poder ver as alterações dos outros users ne?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

_Rest_

peço que leias Como fazer um post com qualidade.

pois o teu post, está muito incompleto....e pouco claro  :thumbsup:

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebo o que é que o topico tinha mas pronto. Já fiz algumas modificações, mais que isto não dá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei sem perceber se a dúvida é de base de dados ou sobre programção...

A ver se isto ajuda: tipicamente, um cursor aberto de forma "dinâmica" permite efectuar actualizações, enquanto um cursor aberto de forma "estática", permite apenas a leitura, tipo "read only".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha dúvida é em programção, mais especificamente em VB6.

Fiquei sem perceber se a dúvida é de base de dados ou sobre programção...

A ver se isto ajuda: tipicamente, um cursor aberto de forma "dinâmica" permite efectuar actualizações, enquanto um cursor aberto de forma "estática", permite apenas a leitura, tipo "read only".

Acho que estás a fazer confusão com o tipo de bloqueio (adLockReadOnly, adLockPessimistic, adLockOptimistic ...) estes é que definem se podes "read only" ou não.

Encontrei na net +/- uma explicação, vou postar aqui para se alguém estiver interessado ( M6 aqui diz que o dynamic não e mt recomendado mas neste caso que espicifiquei tem que ser não é?)

AdOpenStatic

O cursor estático é o único cursor disponível quando se usa o adUseClient. Com o cursor estático, o servidor emitirá o resultado ajustado no cliente, depois não haverá nenhuma mais nenhuma comunicação adicional do servidor ao cliente.

O cliente pode comunicar-se devolta com o servidor para enviar as mudanças no servidor. A maioria dos recursos vai para o cliente do que o servidor com o cursor estático, ou seja, o resultado é armazenado na memória do cliente ao invés do servidor.

Se um cliente diferente fizer mudanças nos dados do servidor depois que uma consulta é enviado, o outro cliente não reberá nenhuma notificação das mudanças. O cursor estático é bi-direcional , isso significa que a sua aplicação pode mover o anterior e o próximo registro do RecordSet.

AdOpenDynamic

Enquanto o adOpenForwardOnly é o mais rápidos dos tipos de cursores, o cursor dinâmico é o menos eficiente. Isso significa também que para um cursor dinâmico trabalhar corretamente, você precisará de um campo com chave primária para determinar anterior e próximo. Por isso, os cursores dinâmicos não são recomendados a menos que seja muito necessário.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha dúvida é em programção, mais especificamente em VB6.

OK, então este post devia estar na secção de VB.

Fiquei sem perceber se a dúvida é de base de dados ou sobre programção...

A ver se isto ajuda: tipicamente, um cursor aberto de forma "dinâmica" permite efectuar actualizações, enquanto um cursor aberto de forma "estática", permite apenas a leitura, tipo "read only".

Acho que estás a fazer confusão com o tipo de bloqueio (adLockReadOnly, adLockPessimistic, adLockOptimistic ...) estes é que definem se podes "read only" ou não.

Sim e não. Se isso é VB, algo que só fiquei a conhecer agora, então sim, mas o que disse é válido noutros domínios.

Encontrei na net +/- uma explicação, vou postar aqui para se alguém estiver interessado ( M6 aqui diz que o dynamic não e mt recomendado mas neste caso que espicifiquei tem que ser não é?)

Se bem compreendi o teu problema e a explicação em "brasileiro", creio que não.

AdOpenStatic

O cursor estático é o único cursor disponível quando se usa o adUseClient. Com o cursor estático, o servidor emitirá o resultado ajustado no cliente, depois não haverá nenhuma mais nenhuma comunicação adicional do servidor ao cliente.

O cliente pode comunicar-se devolta com o servidor para enviar as mudanças no servidor. A maioria dos recursos vai para o cliente do que o servidor com o cursor estático, ou seja, o resultado é armazenado na memória do cliente ao invés do servidor.

Se um cliente diferente fizer mudanças nos dados do servidor depois que uma consulta é enviado, o outro cliente não reberá nenhuma notificação das mudanças. O cursor estático é bi-direcional , isso significa que a sua aplicação pode mover o anterior e o próximo registro do RecordSet.

AdOpenDynamic

Enquanto o adOpenForwardOnly é o mais rápidos dos tipos de cursores, o cursor dinâmico é o menos eficiente. Isso significa também que para um cursor dinâmico trabalhar corretamente, você precisará de um campo com chave primária para determinar anterior e próximo. Por isso, os cursores dinâmicos não são recomendados a menos que seja muito necessário.

Pela explicação o cursor dinâmico é útil para "varrer" o resultado, ou seja, após uma query queremos criar uma "simples" listagem então este tipo de cursor é bom. Essa "conversa" da chave primária cheira um bocado a "esturro", mas enfim...

Também pela explicação, o cursor estático transfere a carga do servidor para o lado do cliente (o que pode não ser obrigatoriamente bom) e permite efectuar actualizações sobre os dados. Mas atenção que essas actualizações não vão ser repercutidas nos outros clientes de forma automática. Ou seja, se estiverem dois clientes a ver os mesmos dados, se um actualizar os dados o outro não verá, de forma automática, essas actualizações.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha dúvida é em programção, mais especificamente em VB6.

OK, então este post devia estar na secção de VB.

Só não meti na secção de VB porque é igual em outras linguas

Também pela explicação, o cursor estático transfere a carga do servidor para o lado do cliente (o que pode não ser obrigatoriamente bom) e permite efectuar actualizações sobre os dados. Mas atenção que essas actualizações não vão ser repercutidas nos outros clientes de forma automática. Ou seja, se estiverem dois clientes a ver os mesmos dados, se um actualizar os dados o outro não verá, de forma automática, essas actualizações.

Então no meu caso preciso de Dynamic porque preciso que as alterações de outro user sejam visualizadas pelos outros users automaticamente.

Tks pela ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Pessoal desculpem a ignorancia... mas que cursor é que voces falam, não é o do rato pois...??  :wallbash:  :wallbash:

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha dúvida é em programção, mais especificamente em VB6.

OK, então este post devia estar na secção de VB.

Só não meti na secção de VB porque é igual em outras linguas

Não é igual em todas as linguagens.

Isso varia não só de linguagem para linguagem como também na forma como acedes à BD, ODBC, JDBC, DAO, etc..

Também pela explicação, o cursor estático transfere a carga do servidor para o lado do cliente (o que pode não ser obrigatoriamente bom) e permite efectuar actualizações sobre os dados. Mas atenção que essas actualizações não vão ser repercutidas nos outros clientes de forma automática. Ou seja, se estiverem dois clientes a ver os mesmos dados, se um actualizar os dados o outro não verá, de forma automática, essas actualizações.

Então no meu caso preciso de Dynamic porque preciso que as alterações de outro user sejam visualizadas pelos outros users automaticamente.

Tks pela ajuda

Acho que não compreendeste, ora volta lá a ler tudo direitinho. Independentemente do tipo de cursor, as alteração não vão ser visualizadas automataticamente pelos outros utilizadores. Vais ter de fazer um "refresh" em cada cliente para ver os dados actualizados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Pessoal desculpem a ignorancia... mas que cursor é que voces falam, não é o do rato pois...??  :wallbash:  :wallbash:

cumps

Não. São cursores de base de dados.

Quando fazes uma query a uma base de dados ela devolve-te aquilo a que se chama um cursor. Esse cursor é, digamos, o canal de acesso aos dados obtidos na query.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora