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.
|
|
|
|