2010-02-08 12 views
0

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?

+0

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. –

Répondre

0

Vous ne voyez que l'erreur la plus externe et l'erreur vous suggère de vérifier les erreurs internes pour trouver le problème. Excuses, je suis un développeur VB mais si vous parcourez les erreurs sur votre objet de connexion, vous devriez être capable de localiser l'erreur réelle. De mes jours ADO classiques, les erreurs en plusieurs étapes visaient généralement à insérer quelque chose de gros dans votre colonne, par exemple une chaîne trop grosse ou un nombre trop précis.

Espérons que cela aide.

Ed

+0

Ed, Merci pour la suggestion. J'ai été amené à travailler sur un projet différent pendant quelques jours, donc il faudra peut-être un peu de temps avant que j'aie l'occasion d'y revenir. –

Questions connexes