Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQLServer]Erreur OleDB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQLServer]Erreur OleDB

n°1166827
dooggie
Posté le 01-08-2005 à 15:02:04  profilanswer
 

Bonjour,
je bosse sur un site ASP qui accède à une base SQL Server 2000.
 
Je souhaite insérer des données dans la une table. Pour cela j'éxecute une requête qui est en dur dans le code (pas de procédure stockée donc) et j'obtiens l'erreur suivante :
 

Code :
  1. Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
  2. Une opération OLE-DB en plusieurs étapes a généré des erreurs.
  3. Vérifiez chaque valeur d'état OLE-DB disponible.


 
ça veut dire quoi ce charabia ?? je ne vois pas trop en quoi mon insertion se passe en plusieurs étapes.
je mets le bout de code qui foire au cas où
 

Code :
  1. Cmd.CommandText="INSERT INTO Pers_A_Fct (id_pers, id_Int, id_Domaine, descr_Fct) VALUES (?,?,?,?)"
  2. Cmd.execute ,Array(idPersonne,FctCourant,DomCourant,FctLibCourant),1


 
si quelqu'un a la moindre petite idée, merci d'avance

mood
Publicité
Posté le 01-08-2005 à 15:02:04  profilanswer
 

n°1166920
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 15:56:33  profilanswer
 

euh... t'es sûr qu'on peut passer un array à cmd.execute ???
 
ceci est juste une question, c'est peut-être le cas, mais je ne l'ai jamais vu, ni dans du code, ni dans une doc

n°1166939
dooggie
Posté le 01-08-2005 à 16:10:52  profilanswer
 

en fait je suis en stage et je bosse sur une appli déjà existante.
 
et vu le nombre de cmd.execute qui utilise un array dans l'appli, je pense que oui, on peut le faire ;o)
 
en fait on utilise un tableau pour passer plusieurs valeurs à la requête que l'on éxecute.

n°1166942
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 16:12:33  profilanswer
 

ok, je découvre :D

n°1166945
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 16:15:11  profilanswer
 

Sinon, je ne sais pas d'où vient ton problème.
Je sais que je l'ai eu il n'y a pas longtemps, mais pas à quoi il était dû... :sweat:

n°1166961
dooggie
Posté le 01-08-2005 à 16:23:24  profilanswer
 

et est ce que tu sais comment tu l'a résolu ??

n°1166970
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 16:28:31  profilanswer
 

ben nan :D

n°1167014
dooggie
Posté le 01-08-2005 à 16:52:36  profilanswer
 

même pas une petite idée ?????
 
c'était plutôt du genre le truc tellement évident qu'on ne le voit même pas ou bien un matin, au réveil ça a marché tout seul et depuis plus de problème ???

n°1167045
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 17:07:06  profilanswer
 

truc évident je dirais. en tout cas, quand j'ai résolu mon erreur, je me souviens m'être demandé le rapport entre mon erreur et celle qu'il me disait.
 
vérifie par exemple que tu n'as pas de trigger ou de FK avec des options de cascade.

n°1167047
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 17:07:24  profilanswer
 

et tente de passer la requête dans SQL Server directement

mood
Publicité
Posté le 01-08-2005 à 17:07:24  profilanswer
 

n°1167092
dooggie
Posté le 01-08-2005 à 17:28:18  profilanswer
 

bon ben ma requête elle passe bien dans l'analyeur de requête

Code :
  1. INSERT INTO Pers_A_Fct (id_pers, id_Int, id_Domaine, descr_Fct, datecreation, createur)
  2. VALUES (21035,1,25,'',getdate(),'VANDAMME PHILIPPE')


 
aucun trigger ni FK sur cette table
 
les seules trucs un peu particulier que je fais au niveau du SQL sont :
_l'insertion d'un champ vide
_l'utilisation de la fonction Getdate (qui varemplir un champ datetime

n°1167126
dooggie
Posté le 01-08-2005 à 17:52:38  profilanswer
 

merci pour tes conseils Arjuna
 
c'est fini pour moi aujourd'hui, je me casse du boulot....
pas idée de faire un stage pendant le mois d'aout ! y a plus personne, c'est mort, je suis le dernier à partir et mon tuteur ne revient que dans 2 semaines !!!!
 

n°1167150
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-08-2005 à 18:00:51  profilanswer
 

le 'getdate()' tu le passes avec ton array ???
 
si oui, alors t'as déjà un bug ici, met le en clair à la place d'un des ? (à sa place), et vire-le de ton array.
 
pour le champ vide, idem, si tu passes null, je ne suis pas sur qu'avec VB ca marche correctement (déjà, vb n'aime pas les NULL dans les champs typés, et en plus, normalement, un NULL côté programmation n'est pas le même qu'un NULL dans la base, donc essaie de mettre NULL à la place d'un des ?

n°1167516
dooggie
Posté le 02-08-2005 à 09:10:29  profilanswer
 

bon alors, je vais raconter mon histoire de puis le début ....
 
en fait, la requête est dans une procédure stockée
hier, j'ai sortie la requête de la procédure stockée "pour faire un essai"
 
donc ce matin je suis repartie sur ma procédure stockée et voici l'erreur que j'ai :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E57)
[Microsoft][ODBC SQL Server Driver]Troncation à droite de la chaîne de données

 
donc voici le code ma PS  
 

Code :
  1. CREATE PROCEDURE procInsertPers_A_Fct
  2. @id_pers as int ,
  3. @id_int as int,
  4. @id_dom  as int,
  5. @descr_fct  as nvarchar(50),
  6. @coll  as nvarchar(70)
  7. AS
  8. INSERT INTO Pers_A_Fct (id_pers, id_Int, id_Domaine, descr_Fct, datecreation, createur)
  9. VALUES (@id_pers, @id_int, @id_dom, @descr_fct, getdate(), @coll)
  10. GO


 
et voici le code qui appel la PS  

Code :
  1. Cmd.CommandText="procInsertPers_A_Fct"
  2. Cmd.CommandType =4
  3. Cmd.execute ,array(idPersonne,FctCourant,DomCourant,FctLibCourant,session("nom_coll" ))


 
comme tu peux le voir le getdate() n'est pas passé dans le array mais exécuté par SQL Server.
sinon l'erreur de ce matin, a été obtenue sans chaine de caractères vides ni NULL
 
je sais pas si peux aider mais voila les données envoyées au navisgateur :

Code :
  1. POST Data:
  2. ind=2&civ=M&nom=TEST&prenom=Test&tel1=&tel2=&tel3=&mail=&fct=6&dom=20&libelle_fct=Pr%E9cision+sur+la+fonction&
  3. fct1=13&dom1=8&libelle_fct1=Pr%E9cision+sur+la+fonction&nvx=Nouvel+interlocuteur

n°1167834
dooggie
Posté le 02-08-2005 à 13:50:39  profilanswer
 

personne pour m'aider aujourd'hui ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQLServer]Erreur OleDB

 

Sujets relatifs
erreur SQLUn Message d'erreur
pilotage excel+access erreur initialisationpilotage excel+access erreur initialisation
[resolu]Warning qui s'affiche malgré un traitement de l' erreurerreur bizarre avec onclick et onload
Cannot open Include file: erreur basique mais pbErreur "Lost connection to MySQL server during query in"
[RESOLU]Retourner un code d'erreur dans une VbYesNo Boxmessage d'erreur JNI
Plus de sujets relatifs à : [SQLServer]Erreur OleDB


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR