USO DE CURSORES EM ADO
O uso de cursores em ado melhora o desempenho com banco access ? , e ainda isto torna o sistema client/server ?
com certeza a escolha do lado do cursor(client ou server), travamentos(locktype) e tipo de cursores(cursortype), melhora em muito o desempenho.
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.
Com o access todos os cursores são criados do lado do cliente.
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 ???
Outro detalhe, ainda uso DAO, sempre abrindo o banco via código com variaveis database e recordsets, compensa mudar para ADO ???
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
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
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 ????????
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 ????????
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
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
Fabio, ajudou sim, obrigado.
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.
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