Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Connectivité
Connectivité Forum sur les problèmes de connexion CR/SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2007, 08h26   #1
Membre actif
 
Avatar de Oncle_Pete
 
Inscription : avril 2006
Messages : 212
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 212
Points : 191
Points : 191
Par défaut Connection dynamique lien ODBC

Bonjour,


J'ai developpe une appli Delphi qui pilote un rapport crystal 10 en fonction de parametres selectionnes par l'utilisateur.
J'ai entre autre parametre un alias de base de donnees.
Je transmet apres recherche le nom de la BD correspondante a mon rapport.
Lors de la conception de mon rapport, j'ai cree une connection ODBC sur une base (Mabase1) afin d'acceder a ma table de travail.
Si par malheur mon utilisateur, se connecte avec l'alias de la base Mabase2 (alors que ma table de travail existe aussi dans la base Mabase2), j'ai un super message d'erreur
"Erreur 535 : parametres de connection incorrectes".
Apres de mutiples essais, je n'arrive pas a trouver la syntaxe qui me permette de gerer dynamiquement ma connection au rapport.
Si vous avez des idees, merci a vous de m'apporter vos lumieres.

Oncle Pete
Oncle_Pete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 19h55   #2
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
tu utilises quoi comme composant pour piloter CR?

je travailles avec CR et C++Builder et j'ai rencontré le même problème.
Résolu avec deux fichiers DSN que je passes à mon compo crystal en fonction du besoin.

A priori, ton message vient d'un problème lié à l'utilisateur.

Ton user existe-t-il sur les deux bases? c'est quoi le sgbd?
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 09h41   #3
Membre actif
 
Avatar de Oncle_Pete
 
Inscription : avril 2006
Messages : 212
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 212
Points : 191
Points : 191
SAY,

J'utilise sous Delphi le composant TCrpe en rapport avec l'API crpe32.dll, ainsi qu'un driver ODBC pour acceder a mes bases SQL server.

J'ai essaye de passer par un fichier DSN comme tu le preconise.
Mon server (SERVER=) est toujours le meme, mon user (UID=) de connection idem.
D'apres ce que j'ai pu voir, seule la ligne DATABASE= est a modifier.
J'ai donc modifie le nom de celle-ci, mais Crystal m'affiche toujours les données de la table que je lui ai declare lors de la conception du rapport.
Lorsque je regarde la propriete de ma table dans la fenetre "definition de l'emplacement de la source de donnees" de Crystal, la valeur de la propriete "Catalogue" est toujours la meme.
Il me manque donc visiblement quelque chose, mais quoi !!
Merci

Oncle_Pete
Oncle_Pete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 10h39   #4
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
alors, moi j'ai fait une classe qui me manipule le TCrpe.
et dans ma fonction d'Init, j'ai :

Code :
1
2
3
CR_MainReport->Connect->UserID = _user;
 CR_MainReport->Connect->Password = _pwd;
    CR_MainReport->Connect->ServerName = _dsn;
ou CR_MainReport est le TCrpe* et _dsn le chemin absolu vers le fichier dsn.

en espérant t'aider
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 12h04   #5
Membre actif
 
Avatar de Oncle_Pete
 
Inscription : avril 2006
Messages : 212
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 212
Points : 191
Points : 191
Bon ca y est, j'ai fini par trouver une autre solution.
Je recupere finalement le string de la requete SQL, lui modifie le nom de la base par programme et roule ma poule.
Il reste neamoins que plein de choses m'echappent sur le sujet.
Notamment, pourquoi lorsque on affecte une nouvelle connexion par programme au niveau de l'etat, celui-ci ne propage pas les proprietes de cette nouvelle connection a la (ou les) table(s) de travail ?.
La fonction tables.propagate n'a aucun effet sur les modifs apportees.
En tout cas, merci SAY pour ton aide.
@+

Oncle_pete
Oncle_Pete est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web