Question [Résolu] Exploitation de CSV avec OLEDB

Plus d'informations
il y a 11 ans 2 mois #19169 par zaerazerazer
Bonjour,

J'aimerais récupérer une donnée contenu dans un fichier CSV.
Etant donné que mon fichier est assez conséquent (et après recherche sur le net) j'ai choisis l'utilisation de OLEDB.

Voilà ce que donne ma première esquisse :

[code:1]
$filepath = \"\\monserv\E:\dossier1\1-sousdossier1\sousdossier2\AnnuStructure.csv\"

$connString = \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`\"$filepath`\";Extended Properties=`\"text;HDR=yes;FMT=Delimited`\";\"

$qry = 'SELECT StructureResponsable FROM [AnnuStruture.csv] WHERE StructureCode=0101'

$conn = new-object System.Data.OleDb.OleDbConnection($connString)
$conn.open()
$cmd = new-object System.Data.OleDb.OleDbCommand($qry,$conn)
$da = new-object System.Data.OleDb.OleDbDataAdapter($cmd)
$dt = new-object System.Data.dataTable
$null = $da.fill($dt)
$conn.close()
$dt

[/code:1]

Mais il cela me retoune cette erreur :

[code:1]
Exception lors de l'appel de « Open » avec « 0 » argument(s) : « Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas in
scrit sur l'ordinateur local. »
Au niveau de C:\chemin : 8 Caractère : 11
+ $conn.open <<<< ()
+ CategoryInfo : NotSpecified: (:«») [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas in
scrit sur l'ordinateur local. »
Au niveau de C:\chemin : 12 Caractère : 17
+ $null = $da.fill <<<< ($dt)
+ CategoryInfo : NotSpecified: (:«») [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException[/code:1]

Je pense que j'ai du oublié de charger un module ou quelque chose mais je ne trouve pas sur le net, des idées ?

Merci d'avance !<br><br>Message édité par: Tibo54, à: 4/03/15 10:55

En cours de découverte du GraalPowershell !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 2 mois #19172 par xyz
Réponse de xyz sur le sujet Re:Exploitation de CSV avec OLEDB
Salut,
peut être dois-tu installer les providers OLEDB 32 bits et/ou 64 bits.
A moins que ta chaîne de connexion ne soit en phase avec ta version d'Office.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 2 mois #19174 par zaerazerazer
Salut laurent,

Mmh j'ai essayer de chercher pendant une heure avec ce oleDB, j'ai finalement abandonné pour écrire une fonction sans l'utilisation d'autre choses.

Voici ce que ça donne :

[code:1]
Function FRechercheManager
{Param ([string]$service)
$TabManager = Import-Csv -Path \&quot;\\monserv\dossier1\AnnuStructure.csv\&quot; -Delimiter \&quot;;\&quot;

# $tabmanager
foreach ($lignemanager in $TabManager)
{

if ($service -eq $lignemanager.StructureCode)
{
$manager = $lignemanager.StructureResponsable
}
}
return $manager
}

$nomService = \&quot;noduservice\&quot;

$ResultatRechercheManager = FRechercheManager $nomService

echo \&quot;Manager : $ResultatRechercheManager\&quot;
[/code:1]

Et l'éxécution est instantanée donc tant pis :D

Merci et bonne journée.

En cours de découverte du GraalPowershell !

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.037 secondes
Propulsé par Kunena