DAO PARA ADO
Olá pessoal!
Estou mingrando de DAO para ADO, só que eu preciso usar a propriedade PERCENTPOSITION existente no DAO, e ADO não possui esta propriedade.
Alguém tem ou já bolou alguma função que substitua essa propriedade em ADO?
Preciso disso com uma certa urgencia.
Desde já agradeço.
Adriano D. Mà ¼ller.
Estou mingrando de DAO para ADO, só que eu preciso usar a propriedade PERCENTPOSITION existente no DAO, e ADO não possui esta propriedade.
Alguém tem ou já bolou alguma função que substitua essa propriedade em ADO?
Preciso disso com uma certa urgencia.
Desde já agradeço.
Adriano D. Mà ¼ller.
POR FAVOR PESSOAL!
ISSO é URGENTE!!!!
ISSO é URGENTE!!!!
Absolute e Percent Position Determinam a Posição Atual (Número / Porcentagem
A propriedade AbsolutePosition permite determinar o número atual do registro tanto na DAO como na ADO.Vejamos:
DAO
ADO
A propriedade AbsolutePosition embora seja usada da mesma maneira em DAO e ADO retorna valores diferentes:
DAO -> A propriedade retorna o valor 0 (zero) para o primeiro registro
DAO -> A propriedade retorna o valor 1 (hum) para o primeiro registro
Observe que usamos a propriedade CursorLocation como adUseClient, se tivessemos usado o valor adUseServer a ADO iria retornar (-1)(desconhecido) para o primeiro registro do recordset.
Por fim, respondendo sua pergunta: A propriedade [txt-color=#ffff00]PercentPosition[/txt-color] (retorna um percentual representando a posição aproximada do registro atual dentro do recordset) da DAO não esta presente na ADO. [txt-color=#ffff00]Usando o valor adUseClient para CursorLocation podemos fazer um cálculo equivalente usando a propriedade RecordCount. é um cálculo simples de porcentagem... (Ex: (posição atual/total de registros) * 100 )[/txt-color]
Até breve.
Um forte Abraço.
A propriedade AbsolutePosition permite determinar o número atual do registro tanto na DAO como na ADO.Vejamos:
DAO
Dim db As DAO.Database
Dim rst As DAO.Recordset
'Abre a base de dados
Set db = DBEngine.OpenDatabase("C:
wind.mdb")
'Abre o Recordset
Set rst = db.OpenRecordset("Select * from Customers", dbOpenDynaset)
'Imprime a posição do registro
Debug.Print rst.AbsolutePosition
'Move-se para outro registro
rst.MoveLast
'Imprime a posição do registro
Debug.Print rst.AbsolutePosition
'Fecha o recordset
rst.Close
ADO
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
'Abre a conexão
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:
wind.mdb;"
'Abre o Recordset
rst.CursorLocation = adUseClient
rst.Open "Select * From Customers", cnn, adOpenKeyset, adLockOptimistic, adCmdText
'Mostra a posição do registro
Debug.Print rst.AbsolutePosition
'move-se para o ultimo registro
rst.MoveLast
'mostra a posicao do registro
Debug.Print rst.AbsolutePosition
'fecha o recordset
rst.Close
A propriedade AbsolutePosition embora seja usada da mesma maneira em DAO e ADO retorna valores diferentes:
DAO -> A propriedade retorna o valor 0 (zero) para o primeiro registro
DAO -> A propriedade retorna o valor 1 (hum) para o primeiro registro
Observe que usamos a propriedade CursorLocation como adUseClient, se tivessemos usado o valor adUseServer a ADO iria retornar (-1)(desconhecido) para o primeiro registro do recordset.
Por fim, respondendo sua pergunta: A propriedade [txt-color=#ffff00]PercentPosition[/txt-color] (retorna um percentual representando a posição aproximada do registro atual dentro do recordset) da DAO não esta presente na ADO. [txt-color=#ffff00]Usando o valor adUseClient para CursorLocation podemos fazer um cálculo equivalente usando a propriedade RecordCount. é um cálculo simples de porcentagem... (Ex: (posição atual/total de registros) * 100 )[/txt-color]
Até breve.
Um forte Abraço.
Tópico encerrado , respostas não são mais permitidas