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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  erro 50299
Juninho Santana
PARANAÍBA
MS - BRASIL
Postada em 04/01/2005 15:30 hs            
uso sql 2000 e crystal 8,5
 
toda vez q eu executo um comando para abrir um relatorio ele me retorna este erro.
"cannot open sql server"
 
alguem pode me ajudar?
     
Gelson Porto
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
Postada em 04/01/2005 16:05 hs            
Juninho, boa tarde..
 
                Acredito que esta mensagem esta relacionado a configuração de usuario e senha no acesso ao banco de dados. Passe, via codido estas informações ao crystal, se voce estiver usando arquivo .rpt, e também a string de conexão.
                Acho que isto resolve. 
     
Juninho Santana
PARANAÍBA
MS - BRASIL
Postada em 04/01/2005 16:18 hs            
oi gelson, obrigado pela atenção...
ja tentei de varias formas,...
.conect
.source
.logonserver
 
mas nao consigo fazer rodar, talvez por nunca ter feito.
se vc tiver um exemplo de como escrever esta rotina, eu agradeco muito...
 
mais uma vez obrigado
     
Gelson Porto
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
Postada em 04/01/2005 16:45 hs            
Juninho, boa tarde..
 
             Este seu problema já teve varias vezes no forum e eu inclusive já passei por ele e já faz uns tre anos, infelizmente não me recordo como foi resolvido, mas uma coisa eu tenho certeza eu atualizei o crystal. No site da seagate tem alguns service pack para atualizar. Não são pequenos, alguns com mais 50 MB. Vou pesquisar em minhas anotações em casa e espero trazer alguma coisa para voce amanha.
            Tente pelo menos a atualização do crystal.
             E boa sorte..
     
Gelson Porto
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
Postada em 04/01/2005 16:51 hs            
Juninho, de uma olhada neste artigo..
Postada em 1/10/2003 por ~Ð@®£@Ñ            

O Crystal Reports é uma das melhores ferramentas para gerar relatórios ; além de ser fácil de usar , oferecer diversos recursos é multiplataforma. Mas nem tudo é uma mar de rosas. Quem , ao usar o Crystal , não se deparou com mensagens de erros que lhe causaram grandes dores de cabeça. Geralmente a conexão com um banco de dados é o grande vilão das mensagens de erro encontradas ao tentar gerar o seu relatório em tempo de execução.

Esses erros são devido aos seguintes fatores:

Falta de arquivos de dependência ou de arquivos do aplicativo cliente.
Falta de arquivos ou versão atualizada para as DLLs para banco de dados.(Ex: P2sodbc.dll)
Configuração incorreta para o DSN ou falta de configuração ODBC.
Informação de login incorreta
Sintaxe incorreta para a chamada de propriedades ou métodos do banco de dados
Geralmente a primeira coisa que pensamos quando da ocorrência de um erro nestas condições é: Por onde começar ?

Bem , que tal começar pelo começo  ? Na verdade a regra básica é a seguinte:

"Tenha completa certeza de que o seu relatário esta rodando corretamente no Crystal report Designer. Se o seu relatório falhar ao tentar a conexão em tempo de desenho sempre vai falhar em tempo de execução na aplicação."

Neste artigo vou abordar os principais erros relacionados com banco de dados usando o Crystal Reports e suas possíveis soluções. Lembre-se que devido a complexidade de cada ambiente nem sempre teremos uma solução que vai servir para todos , mesmo quando o erro parece ser o mesmo.Vamos lá...

Crystal Reports : problemas e possíveis soluções

Devido a diversidade de banco de dados vamos considerar as principais plataformas usadas:

1- Se você estiver usando um banco de dados padrão SQL (Oracle, SQL Server , DB2, Informix,etc..) você deve verificar o seguinte:

O software para banco de dados Cliente esta corretamente instalado ? Geralmente ele precisa estar instalado no driver local.
O diretório padrão de instalação para o software cliente do banco de dados esta corretamente informado no caminho de busca do computador local.(Ex: c:MSSQLBIN )
Você pode verificar isto executando o comando : path na linha de comando do DOS.
Você deve ser capaz de se conectar com o banco de dados a partir do seu software de banco de dados fora do ambiente Crystal Reports.
2- Se você estiver usando um banco de dados padrão desktop ( Access, Clipper, Dbase , FoxPro, etc...). Verifique o seguinte:

O banco de dados esta instalado na sua maquina local ?
Você consegue acessar e visualizar todos os dados do banco de dados fora do ambiente do Crystal Reports ?
Você possui as permissões de acesso corretamente configuradas para acessar o banco de dados ?
3- Se você esta usando uma conexão com um driver ODBC .

Faça um teste de conexão usando a ferramenta sqlcon32.zip . Esta ferramenta é disponibilizada pela Seagate Software e permite testar e debugar possíveis problemas com drivers ODBC instalados.
O link para download é :
http://support.crystaldecisions.com/communityCS/FilesAndUpdates/sqlcon32.zip.asp
Para verificar se o Crystal esta usando uma conexão ODBC faça o seguinte:

Abra o relatório no Crystal Report e no menu - Database - selecione a opção - Convert Database Driver -
Observe o nome não selecionado na frente de From:


Pdsodbc.dll - indica que a conexão é ODBC
Pdsoledb.dll - indica que a conexão é OLE DB
Pd*.dll - indica que a conexão é nativa.(Acima temos indica na tela esta opção)
Vejamos agora os principais erros relacionados a banco de dados :

20532 error: 'Cannot find database DLL'
Após instalar a versão 8.x do Crystal Reports ao criar ou abrir um projeto do Visual Basic que utiliza o componente - Crystal Reports ActiveX (OCX) com o Microsoft Data Control quando você tentar visualizar um relatório vinculado irá obter a mensagem de erro : Run-time error: '20532': Cannot find database DLL
Solução:
Este ocorre pois o componente para controle Vinculado ao banco de dados DLL - P2bbnd.dll - não esta incluso com a instalação da versão 8.0 do Crystal Reports. Você vai precisar realizar uma instalação personalizada :
Inicie o setup do Crystal Reports 8.0 novamente
Clique em Add/Remove e na seção : 'Select Features' expanda 'Data Access'
Clique em 'Bound Reporting' e então clique a seguir em : 'Entire feature will be installed on local hard drive'.
Clique em 'Next'.
Clique em 'Next' para instalar o driver e continue com o setup até completar.


-Error detected by database DLL
-Database DLL is corrupt
-Incorrect session parameters
Quando uma aplicação usando a versão 4.6 (Crystl32.ocx) do CR estiver acessando a versão 97 do Microsoft Access. Após a instalação do Access 2000 as mensagens de erros acima podem aparecer.
Solução:
Existem 3 fatores que podem gerar este erro:

1. A versão 4.6 da OCX Crystl32.ocx
      - Irá falhar ao tentar se conectar com o banco de dados Microsoft Access 2000.
      - Irá falhar ao tentar se conectar com o banco de dados Microsoft Access 97 através do arquivos de runtime do Microsoft Access 2000.

2. A versão dos arquivos de runtime do Microsoft Access instaladas na maquina do cliente :
       - Dao360.dll pode se conectar com o Microsoft Access 2000 e com o Microsoft Access 97.
       - Dao360.dll irá causar uma falha na conexão para a OCX - Crystl32.ocx.
       - Dao350.dll precisa estar instalada para que a ocx -Crystl32.ocx - consiga a conexão.

3. A versão dos drivers Crystal para o Microsoft Access : P2bdao.dll, P2irdao.dll, and P2ctdao.dll.
      - Versão 7.0.100.2 e superior dos drivers do Crystal para o Microsoft Access irão usar a versão mais recente da DAO para se conectar com o banco de dados.
      - Se ambas as dlls , Dao360.dll e Dao350.dll , estiverem na máquina do cliente . A Dao360.dll será usada para se conectar com o Microsoft Access 97.

Se a versão 2000 do Microsoft Access estiver instalada na maquina as condições abaixo irão permitir que a crystl32.0cx faça a conexão com o Microsoft Access 97:
  - O banco de dados deverá ser a versão Microsoft Access 97.
  - Os arquivos de runtime para o Microsoft Access 97 devem estar instalados na mquina do cliente.
  - Os drivers do Crystal para Microsoft Access drivers não podem ser da versão 7.0.100.2 ou superior.

Error: 20500 "Not Enough Memory For Operation"
Error: 20534 "Error detected by database DLL"
Na máquina do cliente , quando uma aplicação Visual Basic tenta imprimir um relatório feito no Crystal Reports versão 8.x diretamente para a impressora , podemos ter o seguinte erro:
Error: 20500 "Not Enough Memory For Operation"

Solução
A causa do erro 20500 é devido ao banco de dados. Se o relatório for enviado para visualização podemos ter o seguinte erro: Error: 20534 "Error detected by database DLL"

Isto pode ocorrer quando o relatório esta se conectando ao banco de dados Access 97 com senha , porem o Crystal esta apontando para um arquivo System.mdw incorreto.(Este arquivo possui as informações de segurança sobre os usuários.)

Uma forma de resolver a questão é usar o utilitário - Crystal Decisions - Sysdb32.zip, para apontar o Crystal e para o arquivo System.mdw correto de forma que a entrada no registro do windows coincida com a informação do Crystal.
O downloado do arquivo pode ser feito no link :
http://support.crystaldecisions.com/downloads. Arquivo Sysdb32.zip.


Error "20534: Error detected by database DLL"
Este erro pode ocorrer quando você usa o Crystal com um driver ODBC para se conectar a arquivos textos e tenta visualizar o relatório.

Detalhando a mensagem de erro temos:

Run time error '-2147467259 (80004005)' : [Microsoft][ODBC Text Driver]Selected collating sequence not supported by the operating system

Erros similares a este ocorrem com outras ferramentas de desenvolvimento Crystal Reports:
- O Automation Server.
- A chamada a API do motor de impressão.
- O Report Designer Component

Solução
Este problema esta relacionado com o ambiente de desenvolvimento integrado do Visual Basic (IDE) para o service pack 3 ou superior. Veja o artigo da microsoft : Q246167 em
http://msdn.microsoft.com
  
O código a seguir é uma maneira de você contornar o problema:

#Const fDebug = true
Dim logon as integer

On Error GoTo traperror:

With CrystalReport1
.ReportFileName = <caminho para arquivo rpt>
logon = .LogOnServer("pdsodbc.dll","<Seu DSN>","","","")
.Action = 1
End With

Traperror:

#If fDebug = true then
         If Err.Number = 20534 Then
CrystalReport1.Action = 1
         End If
#End If

O código somente vai rodar se a variável fDebug for igual a True. Quando você compilar sua aplicação para distribuição aos seus clientes defina fDebug como False , assim o VB não irá compilar ou rodar o código no arquivo executável.

Error detected by database DLL
Database DLL is corrupt
Incorrect session parameters
Se você estiver usando a versão 4.6 do Crystal para acessar um banco de dados Access versão 97 e converter o banco de dados para a versão Access 2000 vai obter as mensagens acima.
Solução
A versão 4.6 do Crystal reports foi criada em 1996 e é imcompatível com o formato da versão 2000 do Access. Se você precisar usar a versão Access 2000 vai ter que atualizar a versão do seu Crystal Reports para versão 7.0 Maintenance Release 1 our superior. Esta versão é compativel já vem com os drivers compatíveis com o Access 2000. ( Os drivers são : P2bdao.dll, P2irdao.dll e P2ctdao.dll. )
O download destes drivers pode ser feito no link :
www.crystaldecisions.com arquivo : access2000drivers.zip


Vejamos agora algumas situações que podem causar muitas dores de cabeça se você não estiver atento.

1 - Quais os arquivos devo distribuir para o cliente poder rodar os relatórios feitos no Crystal Reports ?

Aposto que você já se fez esta pergunta ! A resposta esta no próprio Crystal. Toda versão do Crystal possui em seu Help uma relação dos arquivos que deverão ser distribuídos para rodar os relatórios. Abra o Help e procure por : Runtime File Requirements.

Bingo !!! Você vai achar a relação dos arquivos. Abaixo temos a relação para a versão 4.6 do Crystal.

CRPE32.DLL
Interface para o motor de impressão 32 bit

MSVCRT20.DLL
Microsoft VC++ Run time Library

CRXLAT32.DLL
Somente se estiver usando a função - ToWords()

CO2C40??.DLL
Código de Linguagem

P2BBND.DLL
Incluir somente se estiver vinculando o CR ao Visual Basic Data Control

CTL3D32.DLL
Versão 2 para controles 3d.(deve estar no diretorio : windows/system32)

PG32.DLL
Incluir somente se você estiver usando gráficos no seu relatório

CRYSTLxx.OCX
Estiver usando o arquivo:  Crystal ActiveX  ( XX representa 16 ou 32)

PG.DLL
Somente se estiver usando gráficos

CO2C40EN.DLL     
Somente se estiver usando objetos OLE nos relatórios (32 bit)

CRXLATE.DLL
Se estiver usando a função ToWords (x, # of places)

P2BBND.DLL
Se estiver vinculando o relatório ao um controle Data Control (32bit)


2- O que fazer com o seu relatório se o banco de dados mudou de localização ou foi renomeado ?

Se o banco de dados foi renomeado ou mudou de localização você vai receber uma mensagem de erro ao tentar rodar o relatório já existente ( Database Error ). Neste caso a solução é redefinir no relatório a nova localização ou o novo nome do banco de dados.

Use o comando Set Location para alterar a localização do banco de dados. Além disto o comando Set Location converte automaticamente o driver do banco de dados para a fonte de dados que você tiver escolhido. Assim você pode converter um acesso nativo para um acesso ODBC. Set Location não move fisicamente o banco de dados , apenas redireciona o Crystal Reports para localizar o banco de dados.

No menu Database , selecione a opção - Set Location
Clique no botão - Set Location ...
Informe a localização do banco de dados na janela - Choose Database File
Para definir a localização do banco de dados para a localização do relatório ativo clique no botão - Same as Report.

Obs: Apos terminar de usar o Set Location use a opção - Verify Database no menu Database para atualizar qualquer mudança de estrutura feita no banco de dados.
  

Você pode redefinir a localização do banco de dados no seu código usando a propriedade - DataFiles. A sintaxe é a seguinte:

[form.]Report.DataFiles(ArrayIndex)[= Location$]

Você deve informar o nome e a localização para cada banco de dados ou tabela para a qual deseja alterar a localização. Vejamos um exemplo:

Report1.DataFiles(0) = "c:     esteprimeiro.mdb"
Report1.DataFiles(1) = "c:     estesegundo.mdb"

Você pode definir um caminho relativo para o banco de dados e a seguir atribuí-lo a uma variável que será usada junto a propriedade DataFiles: Ex: Report1.DataFiles(0) = caminho

Por ora é só , voltaremos ao assunto em breve ...

Original:
www.macoratti.net
     
Juninho Santana
PARANAÍBA
MS - BRASIL
Postada em 04/01/2005 21:11 hs            
obrigado pela atencao, estou aguardando novas ideias, pq eu ja andei para todo lado, e nao se consegue encontrar uma solucao para isto, em outros foruns somente encontrei tb pessoas com o mesmo problema mas nenhuma ideia...
obrigado, e se conseguir encontrar eu agradeço
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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