USO DE CURSORES EM ADO

FUTURA 07/07/2005 17:11:50
#92773
O uso de cursores em ado melhora o desempenho com banco access ? , e ainda isto torna o sistema client/server ?
USUARIO.EXCLUIDOS 07/07/2005 17:35:08
#92779
com certeza a escolha do lado do cursor(client ou server), travamentos(locktype) e tipo de cursores(cursortype), melhora em muito o desempenho.
USUARIO.EXCLUIDOS 07/07/2005 18:43:36
#92797
Com certeza que o uso de cursores em ado melhora o desempenho, no entanto isso não transforma o sistema em cliente/servidor, quando se usa access, pois o access não é de facto um smdb cliente/servidor.
Com o access todos os cursores são criados do lado do cliente.
FUTURA 08/07/2005 08:23:10
#92847
Ok, então no caso do access não preciso definir cursores ele o faz sozinho ???

Outro detalhe, ainda uso DAO, sempre abrindo o banco via código com variaveis database e recordsets, compensa mudar para ADO ???
FABIO.ALEXANDRE 08/07/2005 09:03:04
#92856
BOM , PELO Q ENTENDI VC ESTA FALANDO DE CURSORES DO PROPRIO BANCO DE DADOS TIPO O SQL SERVER

O ACCESS NAUM OFERECE A STRUTURA DE C TRABALHA COM CURSORES DENTRO DO BANCO NO MàXIMO Q C PODE FAZERé CRIAR ALGUNS PREVIEWS OU SEJA CONSULTA E USAR O ADO PARA RETORNA-LAS

AGORA C ESTIVER FALANDO DE TIPO DE CURSORES EM ADO,SO REFORÇA O Q OS COLEGAS ACIMA INFORMARAM UM CURSOR BEM DEFINIDO MELHORA BASTANTE O DESEMPENHO DO SEU APLICATIVO

QUANTO A MUDAR? COM CERTEZA C DEVE MUDAR , O DAO é UM PRODUTO DESCONTINUADO NAUM TEM + SUPORTE PARA ELE TODOS OS RECURSOS NOVOS REFERENTE A CONEXÃO ESTA VOLTADO PARA O ADO

ESPERO TER AJUDADO
FUTURA 08/07/2005 09:39:04
#92864
certo, mas o ADO tem melhor performance que o DAO ?????, outro detalhe posso continuar abrindo o banco desta forma:

dim bd as database
dim tbpro as recordset

Set bd = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\gestor.mdb", False, False, ";PWD=" & "OSTRA")
Set tbpro = bd.OpenRecordset("produtos")
tbpro.Index = "codigo"

e ainda, posso contniuar usando comandos do tipo: rs.addnew, rs.edit, rs.update, etc , ou tenho que mudar para insert into, etc ????????
FABIO.ALEXANDRE 08/07/2005 09:49:32
#92872
BOM , DENTRO DA MINHA NECESSIDADES E TESTES FEITOS EM DIVERSAS CONSULTAS A PERFORMANCE DO ADO FOI BEM MELHOR

VC TERà Q MUDAR A MANEIRA DE ABERTURA

Dim CONEXAO As New ADODB.Connection

FICARà + OU - ASSIM
'SQL SERVER
CONEXAO.ConnectionString = "Provider=sqloledb.1;data source=(Local);uid=sa;pwd=1;initial catalog=BANCO"
CONEXAO.Open

'ACCESS
CONEXAO.ConnectionString = "Provider=MICROSOFT.JET.OLEDB.4.0;data source=PATH & FILE.MDB;uid=sa;pwd=1"
CONEXAO.Open

C AINDA CONTINUARA A USAR OS COMMANDOS ADDNEW , UPDATE PARA ALTERAÇÃO NO ADO NAUM PRECISA USAR O EDIT . TIPO ASSIM

RECORDSET!CAMPO='TESTE'
RECORDSET.UPDATE
DIFERENTE DO DAO Q ANTES DE ALTERAR C TEM Q PASSAR O COMMANDO
RECORDSET.EDIT

ESPERO TER AJUDADO
FUTURA 08/07/2005 09:59:18
#92873
Fabio, ajudou sim, obrigado.
USUARIO.EXCLUIDOS 08/07/2005 10:16:02
#92884
Como já foi dito o Access não e cliente servidor, não configurar os cursores não é indicado pois ele fica configurado com valores default.

Mesmo não sendo cliente servidor existem diferenças entre colocar o cursor do lado cliente ou do servidor....colocando do lado do servidor consegue-se fazer um controle de concorrencia melhor o que não ocorre ao lado cliente.

Fiz diversos testes em uma rede com duas maquinas executando ao mesmo tempo acessando o banco em servidor.....o usuario clicava em um novo registro e eu gerava um protocolo..ao lado do cliente não funcionava, vinha o número desatualizado...ao lado do servidor funcionava e nunca deu problema.

Se vc não tem problemas com concorrência não precisa se preocupar tanto. Mas como foi dito deve conhecer a definição de cada cursor para saber a melhor escolha.

Em relação a performance creio que não deva ter problemas, visto que esta usando Access logo deve ter poucos registros e com um banco bem modelado colocando chaves nos campos mais consultados...não usar select com * não tera problemas com performance.

Mas leve em consideração que Access não e banco cliente servidor e não foi projetado para multiusuario ...ele na verdade e um banco compacto..simples para mono usuario tanto que vem no Office sendo que é um banco tão bom que chegam a comparar com outros cliente servidor o que é absurdo.
Tópico encerrado , respostas não são mais permitidas