J'ai la table Tbl1 ( UnNom nvarchar (64) )problème de comparaison OLEDB nvarchar contre ntext (SQLServer 2005)
Plus OLEDB Je suis en train de sélectionner SELECT 1 FROM Tbl1 WHERE SomeName = ?
fixation 3 caractères unicode en tant que paramètre Causes: DB_E_ERRORSINCOMMAND (0x80040E14L) « les types de données nvarchar et ntext sont incompatibles dans l'opérateur Egal à »
J'ai déjà essayé suivant les liaisons d'entrée:
1) ...
currentBind.wType = DBTYPE_VARIANT;
currentBind.cbMaxLen = 20
// where data points to valid VT_BSTR allocated by SysAllocString
...
2) ...
currentBind.wType = DBTYPE_WSTR;
currentBind.cbMaxLen = 20
// where data points to valid VT_BSTR allocated by SysAllocString
...
En tout treates SQLServer façon dont ce paramètre ntext. Des suggestions? Merci d'avance.
Oui, ça aide. SQL Profiler montre exactement cela? traité comme ntext (voir @ p2 ci-dessous): declare @ p1 int set @ p1 = 21 exec sp_prepexec @ p1 sortie, N '@ P1 bigint, @ P2 ntext, @ P3 bigint', N ' – Dewfy
Puis-je essayez de mettre à jour le fournisseur si possible (en espérant qu'il fera mieux son travail) ou de vous en tenir au 'hack rapide et sale'. – AlexS
Malheureusement, le fournisseur est le pilote natif MSSQL Server 2005 "le plus grand et le plus puissant". – Dewfy