TL; DRComment puis-je éviter BIML express citant un pilote ODBC
Je voudrais éviter BIML d'envelopper mon pilote ODBC guillemets quand il crée mon paquet dtsx.
Plus d'info
J'ai un fichier BIML très simple, illustré ci-dessous après l'en-tête code BIML, qui se connecte à Composite Information Server (CIS). Je ne pense pas que la source de données soit importante, mais j'ai pensé inclure au cas où c'est pertinent à la question/problème.
Le pilote CIS ODBC est installé avec le nom de pilote Cisco Information Server 7.0
.
Comme ci-dessous, je suis entrée au conducteur nom correctement, mais quand BIML génère le paquet dtsx, il enveloppe guillemets autour du nom, donc, pour une connexion comme ceci:
<OdbcConnection Name="CIS" ConnectionString="Driver={Cisco Information Server 7.0};Server=xxxxxxxxxx;Port=xxxxxxxxxx;Domain=xxxxxxxxxx;dataSource=xxxxxxxxxx;database=src;User=xxxxxxxxxx;Password=xxxxxxxxxx;Encrypt=yes;" />
.. .Je fin avec une chaîne de connexion, comme ceci:
Driver={"{Cisco Information Server 7.0}}"};server=xxxxxxxxxx;port=xxxxxxxxxx;domain=xxxxxxxxxx;datasource=xxxxxxxxxx;database=xxxxxxxxxx;user=xxxxxxxxxx;encrypt=yes
Si je supprime les accolades et utiliser une chaîne de connexion comme ceci:
<OdbcConnection Name="CIS" ConnectionString="Driver=Cisco Information Server 7.0;Server=xxxxxxxxxx;Port=xxxxxxxxxx;Domain=xxxxxxxxxx;dataSource=xxxxxxxxxx;database=src;User=xxxxxxxxxx;Password=xxxxxxxxxx;Encrypt=yes;" />
... Je finis toujours avec une chaîne de connexion comme ceci:
Driver={"Cisco Information Server 7.0"};server=xxxxxxxxxx;port=xxxxxxxxxx;domain=xxxxxxxxxx;datasource=xxxxxxxxxx;database=xxxxxxxxxx;user=xxxxxxxxxx;encrypt=yes
Modifier Juste pour plus de clarté (car il ne figurait pas dans le message original) les citations supplémentaires ajoutées par le compilateur BIML signifie le conducteur est reconnu et exécuter le paquet généré jette cette erreur:
Execute SQL Task: Failed to acquire connection "CIS". Connection may not be configured correctly or you may not have the right permissions on this connection.
avoir une solution de travail (plus d'une solution de contournement) en créant une entrée de registre en double pour le conducteur en HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
, avec le non-alphanumérique les caractères ont été supprimés, puis référencés dans BIML.
Toutefois, j'aimerais savoir s'il existe un moyen d'arrêter les guillemets d'encapsulation du compilateur BIML autour de mon pilote ODBC.
Merci d'avance pour vos suggestions!
Code BIML
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>
<OdbcConnection Name="CIS" ConnectionString="Driver={Cisco Information Server 7.0};Server=xxxxxxxxxx;Port=xxxxxxxxxx;Domain=xxxxxxxxxx;dataSource=xxxxxxxxxx;database=src;User=xxxxxxxxxx;Password=xxxxxxxxxx;Encrypt=yes;" />
</Connections>
<Packages>
<Package Name="TestPackage" ConstraintMode="Parallel" ProtectionLevel="EncryptSensitiveWithUserKey" DelayValidation="true">
<Variables>
<Variable Name="TestResult" DataType="Int32">0</Variable>
</Variables>
<Tasks>
<ExecuteSQL Name="ConnectionTest" ConnectionName="CIS" ResultSet="SingleRow">
<DirectInput>SELECT COUNT(*) FROM SCHEMA.TABLE</DirectInput>
<Results>
<Result Name="1" VariableName="User.TestResult" />
<!-- ODBC requires a 1-based param number -->
</Results>
</ExecuteSQL>
</Tasks>
</Package>
</Packages>
</Biml>
Merci, @billinkc, d'essayer l'heure de demain matin (UK) et de vous faire part d'un commentaire ou d'une réponse acceptée. – TechSpud
Pas de joie, @billinkc. Entrée BIML 'Driver = {{{Cisco Information Server 7.0}}}' donne une chaîne de connexion 'Driver = {" {{{Cisco Information Server 7.0}}}}}} "}' – TechSpud