J'utilise C++ et ADO pour ajouter des données à une base de données SQL Server 2005. Lorsque j'appelle la méthode de mise à jour Recordset pour une colonne sql_variant, j'obtiens l'erreur DB_E_ERRORSOCCURRED
et le message d'erreur Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Si la valeur que j'ajoute est NULL, tout fonctionne correctement et toutes les valeurs qui vont dans les champs qui ne sont pas des types sql_variant fonctionnent.Erreurs de mise à jour du jeu d'enregistrements lors de la mise à jour du champ sql_variant
Est-ce que quelqu'un sait ce que je peux faire mal?
Merci
[Modifier] J'ai un peu plus d'informations. La valeur que nous stockons est la chaîne vide - ADO semble vouloir stocker cela dans le sql_variant comme un nchar (0), qui bien sûr n'est pas un type de données SQL valide. Est-il possible d'obtenir une chaîne vide dans sql_variant en utilisant les commandes de lot ADO?
DB_E_ERRORSOCCURRED indique qu'il ya plusieurs erreurs et que vous devez examiner l'état retourné par OLEDB pour chacune des colonnes pour déterminer le problème réel. [Liaison des valeurs de données de Microsoft Developer Network] (http://msdn.microsoft.com/fr-fr/library/ms718116 (v = vs.85) .aspx) fournit des informations sur la fonctionnalité de liaison et une section [ Statut] (http://msdn.microsoft.com/en-us/library/ms722617 (v = vs.85) .aspx) qui fournit des détails sur DB_E_ERRORSOCCURRED. –