[MSSQL] Requete select plus précise [Résolu]

Requete select plus précise [Résolu] [MSSQL] - SQL/NoSQL - Programmation

Marsh Posté le 16-10-2008 à 11:19:14    

Bonjour à tous,
 
Je dois utiliser l'Agent SQL de Service Pilot pour me connecter à un serveur UCCX(cisco) tournant sous une version de MS SQL.
 
Nous utilisons l'authentification Windows et cela fonctionne.
Cependant, lorsque je passe à l'agent la commande suivante:
 
select * from dbo.NextSupervisorID
 
Les logs me retournent cette erreur:
 
2008-10-16  11:13:46.770 UCCX ** Problem in the SQLAgent Treatment: Unable to cast object of type 'System.Data.OleDb.OleDbConnection' to type 'System.Data.SqlClient.SqlConnection'.
 
Est-ce que j'oublie quelque chose ?
 
Merci d'avance


Message édité par kill9 le 17-10-2008 à 14:14:22
Reply

Marsh Posté le 16-10-2008 à 11:19:14   

Reply

Marsh Posté le 16-10-2008 à 12:34:09    

Je dirais que ton mode de connexion n'est pas bon.
 
Toi tu te connectes en mode OLEDB, alors que le programme attends une connexion native SQL pour .NET
 
En gros, tu utilises une chaîne de connexion du genre :


Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;


 
Alors que le programme attends une connexion de ce genre :


Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;


Message édité par MagicBuzz le 16-10-2008 à 12:34:19
Reply

Marsh Posté le 16-10-2008 à 12:34:56    

Pour plus d'infos sur les chaînes de connexion :
http://www.connectionstrings.com/? [...] server2005

Reply

Marsh Posté le 16-10-2008 à 13:10:40    

En fait, en SQL je n'y connais que dalle :D
 
Le serveur SQL n'autorise que les connexions windows authentification.
 
Donc tu me dis que l'agent SQL de Service Pilot utiliserait une connection OLEDB.
Mais pourquoi parles tu de .Net ?
 
Merci d'avance.
 
EDIT:
 
Arf, je crois comprendre. A cause du "SqlConnection"


Message édité par kill9 le 16-10-2008 à 13:35:04
Reply

Marsh Posté le 16-10-2008 à 14:17:52    

'System.Data.SqlClient.SqlConnection' => C'est un namespace de .NET, j'en déduit que ton programme utilise .NET
 
Le coup de l'authentification Windows, les deux chaînes que je t'ai filé l'utilisent.
 
La seule différence, c'est que la première utilise la couche OLEDB pour se connecter à SQL Server, tandis que la seconde utilise directement le drivers de .NET
 
Ce n'est pas à proprement parler spécifique à SQL Server, mais de la couche MDAC de Microsoft qui permet de faire abstraction de la méthode de connection à la base.
 
Dans ton cas en tout cas, l'erreur vient de là : tu utilises une chaîne de connexion OLEDB, ce qui fait que lorsque le programme essaie d'accéder à la base avec cette chaîne, il se prend un cast exception car il attend une connexion avec le drivers .NET
 
Cependant, je ne te cache pas que je trouve ça très bizarre. Du moins j'aurais jamais cru que ce soit cette exception qui serait levée dans ce cas.


Message édité par MagicBuzz le 16-10-2008 à 14:19:27
Reply

Marsh Posté le 17-10-2008 à 14:14:03    

Merci à toi MagicBuzz,
 
C'était tout à fait cela.
Les dev l'ont corrigé.
 
Meric encore pour ton aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed