Avalados por :

Como usar ADO.NET com Crystal Reports 2008?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 7 Vistas
0
Cargando...

Eu pensei que com o CR 2008 seria possível usar o ADO.NET (não o dataset, o provedor de dados) mas não consigo encontrá-lo em lugar nenhum. Será que é necessário baixar uma DLL adicional?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Os drivers ADO.NET são arquivos DLL. Você deve criar a DLL que gera o conjunto de registros ou usar uma que alguém mais tenha criado.

ADO.NET (XML)

Esta opção suporta a inserção de dados em seu relatório a partir de um conjunto de dados ADO.NET; também suporta extrair dados de uma DLL que retorna um conjunto de dados (geralmente criada por um desenvolvedor). Quando uma DLL é criada para extrair dados, os usuários podem criar relatórios a partir dos dados retornados.

Aqui está a informação do arquivo de ajuda do Crystal Reports:

Nota: A ajuda online do Crystal Reports para o Visual Studio .NET inclui informações sobre a geração de objetos de conjunto de dados ADO.NET.

Caminho do arquivo

Insira o caminho completo e o nome do seu arquivo XML, arquivo de esquema XML ou provedor de .NET DataSet. Você também pode usar o botão adjacente a este campo para procurar seu arquivo ou provedor. Ao procurar, escolha o tipo de arquivo apropriado na lista "Tipos de Arquivo" na caixa de diálogo Abrir:

Arquivos XML

Arquivos de esquema XML

Provedor de .NET DataSet

Usar Classes do Projeto

Selecione esta opção se deseja usar classes de um projeto .NET existente.

Nome da Classe

Esta opção aparece depois de selecionar "Usar Classes do Projeto". A lista é preenchida com as classes contidas no arquivo que você selecionou. Selecione a classe cujo DataSet deseja relatar.

Usar DataSet da Classe

Selecione esta opção se deseja usar um DataSet retornado pelo arquivo que você selecionou.

Nomes do DataSet

Esta opção aparece depois de selecionar "Usar DataSet da Classe". A lista é preenchida com os DataSets contidos no arquivo que você selecionou. Selecione o DataSet sobre o qual deseja relatar.

Sim, o Crystal pode fazer isso, mas o provedor de dados não é escrito pelo CR, mas por você ou por um terceiro. Não temos crdb_tudatoproveedor.dll.

Acho que devemos voltar a por que você não pode continuar usando o driver Sybase. E para obter a consulta SQL que o CR gera, clique na opção do menu Banco de Dados e depois em Mostrar Consulta SQL, você terá que fazer isso para cada relatório.

Sugiro que converse com um desenvolvedor .NET para ver se esta é uma opção para criar o DataProvider para você ou criar um aplicativo que possa usar os assemblies CR .NET para pegar seus relatórios existentes e, por meio de nossas APIs, definir a localização dos dados em seu novo provedor.

Obrigado

Don

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Eu fiz. Criei um relatório em branco, selecionei a opção de Criar Nova Conexão ADO.NET, escolhi a DLL do provedor ADO.NET. Mas não está funcionando. Está procurando um provedor de Data Set.

Estou perguntando se é possível usar drivers ADO.NET para se conectar ao banco de dados da mesma forma que o Crystal Reports pode usar drivers OLEDB ou ODBC ou drivers nativos.

ADO.NET não se limita apenas a conjuntos de dados. Bancos de dados como Microsoft SqlServer, Oracle, Sybase, DB2, MySQL SQLite, etc. têm drivers ADO.NET que podem ser usados para se conectar e executar consultas SQL, ler dados e mais. Conjuntos de dados são simplesmente uma coleção de linhas e tabelas geralmente criadas usando um adaptador de dados que, por sua vez, geralmente utiliza um objeto de comando ADO.NET.

Tenho centenas de relatórios (com sub-relatórios) que se conectam ao Sybase e Sql Server onde o Crystal cria a consulta, a executa, carrega registros, para cada sub-relatório executa uma nova consulta e finalmente gera os relatórios. Isso é feito usando o cliente nativo do Sybase.

É impossível alcançar o mesmo com um Data Set.

Se o Crystal 2008 pudesse usar drivers ADO.NET, eu poderia me livrar dos clientes nativos e usar o ADO.NET.

Talvez exista uma cr_db...dll que possa fazer isso?

Obrigado,

Gianluca

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ok, permita-me explicar... E sim, eu estava me referindo a .NET e não a .ENT, erro tipográfico.

O Crystal Reports utiliza um arquivo chamado crdb_adoplus.dll como seu driver ADO.NET (XML). Este é o nosso driver para se conectar ao XML ou se um desenvolvedor ou um terceiro desenvolvedor cria um conector de banco de dados na forma de dll, então o CR pode usá-lo. Dentro deste dll é estabelecida uma conexão com o banco de dados, como isso é feito depende do desenvolvedor, seja usando um driver com fio, que tem um cliente embutido como nossos drivers DataDirect, ou outro método. CR não escreve drivers de cliente.

Você pode obter nossos drivers DD a partir deste [link](https://smpdl.sap-ag.de/~sapidp/012002523100008666562008E/cr_datadirect53_win32.zip)

O pacote de drivers DD possui o que é chamado de um driver "com fio" para se conectar ao Oracle e MS SQL Server, bem como um driver de Sybase, que não requer a instalação de um cliente de banco de dados. Eles são baseados em ODBC, então você está limitado ao que o ODBC pode fazer.

Para usá-los, faça o download e instale a partir do link anterior e depois vá para o ODBC Admin e crie um novo DSN de sistema e selecione o driver de protocolo com fio da Sybase do CR. Agora, ao definir a localização do banco de dados do seu relatório, selecione ODBC e este novo DSN e então verifique o banco de dados.

Se você está apenas procurando uma conexão a uma fonte de dados sem o custo adicional de instalar um driver de cliente, esta é a opção a seguir. Você ainda não mencionou qual é o seu objetivo final, além de usar um "Fornecedor de Dados" e usar o ADO.NET, mas não é necessário usar o ADO.NET para usar um driver com fio.

Confira este link para ver quais opções estão disponíveis no ADO.NET: http://en.wikipedia.org/wiki/ADO.NET

Então espero que agora esteja claro, mas se não estiver, então acredito que estamos simplesmente interpretando mal a definição de ADO.NET e o que o CR ADO.NET é capaz de fazer.

Também parece que você tem um desenvolvedor .NET disponível, então sugiro fortemente que poste sua pergunta no fórum de desenvolvedores do CR .NET e também procure e baixe nossos exemplos de .NET sobre como configurar a localização da sua nova fonte de dados no código. Ou se optar pelo caminho do dll, como fazer tudo funcionar.

Obrigado novamente

Don

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado pela sua resposta. Não sei como explicar de outra forma o que significa usar controladores ADO.NET em vez de simplesmente usar conjuntos de dados. Não se trata de usar cr_myowndriver. Trata-se de ter um cr_adonet que possa utilizar provedores de dados ADO.NET (muito diferente de um conjunto de dados).

De qualquer forma, suponho que a resposta é não, o Crystal não pode usar controladores ADO.NET. Teremos que continuar com ODBC para o Sql Server e o cliente nativo da Sybase para a Sybase.

Seria uma boa adição poder utilizar ADO.NET. Isso eliminaria a necessidade de implementar grandes clientes nativos. Talvez em uma próxima versão?

Não sei o que é um desenvolvedor .ENT, talvez "entidade de dados"? No entanto, isso é completamente diferente. Se você se referia a um desenvolvedor .NET, geralmente sabem o que é um provedor de dados ADO.NET, se já programaram bancos de dados com ADO.NET.

Por isso faço esta pergunta, nossos desenvolvedores .NET não conseguiram encontrar nenhuma maneira de usar provedores ADO.NET com o CR 2008. Apenas conjuntos de dados ADO.NET, que não funcionam para relatórios conectados e sub-relatórios que usam tabelas diferentes.

Obrigado novamente pelo seu tempo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?