2012-01-31 2 views
-1

J'ai un paquet où je suis insérer des données XML dans la destination de jeu d'enregistrements et de destination jeu d'enregistrements à la table de base de données via Execute SQL tâcheInsérer une ligne dans la table en fonction de la condition

Mon XML contient des données comme

<ROOT> 
<row firstName="Joe" lastName="Blow" city="Seattle" state="WA" phone="555-666-7777"/> 
<row firstName="Jane" lastName="Doe" city="Los Angeles" state="CA" phone="566-866-2345"/> 
<row firstName="Robert" lastName="Smith" city="Washington" state="DC" phone="444-555-6666"/> 
<row firstName="Mary" lastName="Contrary" city="Garden City" state="FL" phone="234-876-9374"/> 
<row firstName="Thomas" lastName="Doubter" city="New Orleans" state="LA" phone="384-389-7342"/> 
<row firstName="Barbara" lastName="Bologna" city="Chicago" state="IL" phone="483-483-8162"/> 
</ROOT> 

et j'ai pris quatre variables dans mon forfait tout type de chaîne de

firstname,lastname,city,state,phone  

maintenant, mon exigence est que je dois insérer ces données XML dans mon table de destination basée sur le prénom ..

Si j'ai choisi firstname= Robert, seule la ligne portant ce prénom doit être entrée dans ma table de destination.

Et ma tâche d'exécution SQL contient

Result set Property--single row 
connection type--OLEDB 
connection--myconnection 
sql statement--declare @firstName varchar(25) 
select @firstName= ? 
INSERT INTO people_xml (firstName, lastName,city,state,phone) 
    select firstName,lastName, city,state,phone from people_xml 
    where [email protected] 

Select Convert(varchar,Scope_Identity()) as SourceIDentity 

mappage des paramètres Onglet

user::firstname 
user::lastname 
user::city 
user::state 
user::phone 

jeu de résultats Tab

result Name--0 
variable Name--User::SourceID 

Quand je courais le paquet, il jette une erreur comme

[Execute SQL Task] Error: Executing the query "declare @firstName varchar(25) select @firstName= ..." failed with the following error: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

+1

Affiner la question –

+3

fonctionne StackOverflow! Selon la prémisse que les gens veulent s'entraider, une mesure de la serviabilité et de l'influence perçue d'une personne sur un sujet est liée à sa réputation ** Vous avez demandé ** [5 autres questions] (http://stackoverflow.com/users/ 1025057/satishkumar? Tab = questions) ** mais vous n'avez pas sélectionné de réponse et vous n'avez pas mis à jour les réponses utiles Les gens sont heureux de dépenser leur énergie pour vous aider à trouver les réponses, mais vous devez être un bon membre de la communauté et récompenser leurs efforts. votes ou commentaires si leurs solutions ne fonctionnent pas – billinkc

Répondre

0

Le problème avec cette erreur est qu'il est très générique. Personnellement j'ai eu cette erreur deux fois. Une fois je l'ai résolu en faisant correspondre les champs LONGUEUR. Par exemple, j'ai utilisé varchar (80) dans la table et varchar (50) ou plus lors de l'insertion. Je l'ai résolu en utilisant le même type et la même longueur.

La deuxième fois, j'étais dans un vrai problème, mais heureusement, il y avait un gars qui avait le même problème que moi: je devais enregistrer sqltaskconnections.dll en utilisant regsvr32. Recherchez-le sur internet, vous y trouverez un guide.

Si j'étais vous, je ferais un essai. Comme je l'ai déjà dit, cette erreur est vraiment générique et à moins que quelqu'un répond vraiment sage, je suppose que vous aurez à lutter beaucoup = - (

Hope this helps

Questions connexes