USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Recordset e Querydef
Lantis
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 25/08/2005 18:04 hs            
olá !!!

Estou fazendo um projeto usando banco mdb, e fiz uma tabela virtual para processar os dados, após isso preciso criar uma query no banco de dados mas esta dando erro.

Segue codigo.
Set rsTemp = New ADODB.Recordset
With rsTemp
    .Fields.Append "Códigoi", adVarChar, 60
    .Fields.Append "Nome", adVarChar, 60
    .Fields.Append "Endereço", adVarChar, 60
    ... bloco de codigo...
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .LockType = adLockOptimistic
    .Open
End With

... Bloco de codigo ...

'Verifica se a query já existe se sim apaga.
   For Each qryReajuste In vgDb(QualDb("DADOS")).QueryDefs
       If qryReajuste.Name = "qryReajuste" Then: vgDb(QualDb("DADOS")).QueryDefs.Delete ("qryReajuste")
   Next

Sql = "SELECT * FROM tabela"
Set qryReajuste = vgDb(QualDb("DADOS")).CreateQueryDef("qryReajuste", Sql)
AQUI ESTA O PROBLEMA. Para criar uma QUERY no banco normalmente uso isso, mas com uma tabela virtual não consigo fazer o select e colocar dentro da query, como posso passar o meu recordset para dentro da query em vez do comando SQL?

 
Conhecer a si mesmo
Acreditar em si mesmo
Superar a si mesmo
   
Sandro
não registrado
ENUNCIADA !
Postada em 25/08/2005 22:22 hs   
Olá,
 
Você está misturando duas tecnologias de acesso a dados, DAO e ADO. Com isso, você no mínimo mantém duas conexões simultâneas com o banco. Se o seu programa fo rodar em rede, você terá várias conexões simultâneas de forma desnecessária, comprometendo o desempenho.
Bom, voltando ao seu problema, por quê você fica criando e destruindo uma querydef no seu banco?
Ao invés de criar a tabela virtual, crie uma tabela temporária. A diferença é que a tabela temporária reside fisicamente no banco de dados, podendo ser acessada pela sua querydef ou por qualuqer outra consulta feita diretamente no código. Use o comando CREATE TABLE da SQL para fazer isso. Depois de usar a sua tabela temporária, use o comanda DROP TABLE para remover fisicamente a tabela. Não esqueça de usar o comando CompactDatabase para limpar o banco dos "resíduos" de objetos deixados pela DAO (ou ADO).
 
um abraço,
Sandro.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página