TIPO CONEXOES ADO

USUARIO.EXCLUIDOS 10/09/2006 03:03:00
#170469
Olá pessoal! beleza??

Gente, sou novato em VB e principalmente em banco de dados, por isso resolvi escolher o access e o ADO para começar.

Mas tenho algumas dúvidas e como este site só tem "feras", resolvi postar minhas humildes perguntas!

Seguinte:

Qual é a diferença entre os 3 tipos de conex abaixo??
Uma é mais rápida que a outra??
Alguma dá suporte a arquitetura cliente\servidor?? Ou é só colocar a base em outra máquina e mapear a pasta na rede??
Qual é a mais rápida??

Abaixo segue os tipos de conexões que até agora encontrei.

Dim CON As Connection
Dim WW As New Recordset

Private Sub Form_Load()

Set CON = New Connection
CON.Open "Provider=Microsoft.jet.oledb.4.0; Data Source=" & App.Path & "\Employee.mdb"

WW.Open "Select * from Master", CON, adOpenKeyset, adLockOptimistic
End Sub


***********************************************************************
Public WithEvents adoPrimaryRS As Recordset
Public WithEvents rsstrFindData As Recordset

Private Sub Form_Load()

Set adoPrimaryRS = New Recordset

adoPrimaryRS.Open "SHAPE {select NIM,Name,Nippos,Address," & _
"BirthDate,Sex,Status from t_mhs Order by NIM} " & _
"AS ParentCMD APPEND ({select NIM," & _
"Name,Nippos,Address,BirthDate,Sex,Status FROM t_mhs " & _
"ORDER BY NIM } AS ChildCMD RELATE NIM " & _
"TO NIM) AS ChildCMD", db, _
adOpenDynamic, _
adLockOptimistic
End Sub


***************************************************************************

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Form_Load()
On Error Resume Next
cn.ConnectionString = "provider=Microsoft.Jet.OLEDB.3.51;data source=emp.mdb;"
cn.Open
Debug.Print "Connection Object Created"

rs.Open "Select * from emp", cn, adOpenDynamic, adLockOptimistic
Debug.Print "Recordset Object Created"

MsgBox "Connection Succeded" & vbCrLf & "Download More @ : www.vivekpatel.cjb.net"

End Sub


Nota: Nenhuma delas usa o AddUseClient, acho que é isso! Pra que serve?

Agradeço desde já gente!




USUARIO.EXCLUIDOS 10/09/2006 08:34:11
#170473
1 Qual é a diferença entre os 3 tipos de conex abaixo??
Não há nenhuma diferença entre as CONEXÕES que você apresentou. Há diferença, isso sim, em relação aos RECORDSET. Todos eles, porém, usam um objeto ADODB.CONNECTION equivalente, sem diferenças.

Caso 1:
Instrução SQL = Instrução de seleção comum de dados;
adOpenKeyset = Abre a consulta como uma consulta DINÓ¡MICA, com a diferença de que registros adicionados ou excluídos por outros usuários da rede NÃO SERÃO acessíveis. As alterações estarão visíveis;
adLockOptimistic = Travamento OTIMISTA, registro por registro, no momento da edição dos dados.

Caso 2:
Instrução SQL = Instrução de seleção da SQL SHAPE da Microsoft.
adOpenDynamic = Abre a consulta como uma consulta DINÓ¡MICA, com a diferença de que registros adicionados ou excluídos por outros usuários da rede SERÃO acessíveis. As alterações estarão visíveis;
adLockOptimistic = Travamento OTIMISTA, registro por registro, no momento da edição dos dados.


Caso 3:
Instrução SQL = Instrução de seleção comum de dados;
adOpenDynamic = Abre a consulta como uma consulta DINÓ¡MICA, com a diferença de que registros adicionados ou excluídos por outros usuários da rede SERÃO acessíveis. As alterações estarão visíveis;
adLockOptimistic = Travamento OTIMISTA, registro por registro, no momento da edição dos dados.


2 Uma é mais rápida que a outra??
Dentre os modos de abertura, algumas combinações de parà¢metros tornam o desempenho mais rápido, enquanto que outras combinações, apesar de não apresentarem erro, não são possíveis (o padrão é utilizado em seu lugar).
Pense da seguinte forma:
1 - Quando você abre uma consulta em modo de EDIÇÃO, ela será mais lenta, pois precisa carregar informações adicionais para cada campo da tabela. Deste modo, consultas apenas de visualização são mais rápidas;
2 - Consultas com navegação bi-direcional são mais lentas do que as de navegação uni-direcional.

3 Alguma dá suporte a arquitetura cliente\servidor?? Ou é só colocar a base em outra máquina e mapear a pasta na rede??
A biblioteca ADO oferece suporte á arquitetura Client/Server. Você pode indicar de qual lado o ponteiro do cursor irá agir, se do lado CLIENTE (adUseClient) ou do lado SERVIDOR (adUseServer).


4 Qual é a mais rápida??
Normalmente seria a combinação dos parà¢metros adOpenForwardOnly e adLockReadOnly. Mas isso é relativo ás circustà¢ncias. Por exemplo, se você pretende editar os dados com os métodos do objeto Recordset da ADO, esse modo de abertura não seria adequado. Se, por outro lado, usará o método EXECUTE e instruções SQL, sendo que a consulta apenas trará as informações necessárias para dispor em tela, ele é bastante aceitável.


Tópico encerrado , respostas não são mais permitidas