Question Insert Into dans BDD Access
- matthias
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 14 ans 9 mois #4905
par matthias
Insert Into dans BDD Access a été créé par matthias
Bonjour,
Je dispose une base access, dans laquelle le fais des recherches et mises à jour :
#---Connexion
$FileName=\"D:\MaBase.mdb\"
$NomTable=\"serveurs\"
$StrConnexion=\"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$FileName\"
$Connexion = new-object System.Data.OleDb.OleDBConnection($StrConnexion)
#---Recherche
$Requete = \"Select * from Serveurs where Technologie = 'NT' and [Code machine]= '\" + $computer + \"'\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
$Dataset.Tables[0].TableName =$NomTable
$maTable= $dataset.Tables[$NomTable]
foreach ($R in $maTable.Rows)
{
Write-host MaBase $computer -backgroundcolor \"white\" -Foregroundcolor \"green\"
}
$Connexion.Close()
#---Mise à jour
$Requete = \"UPDATE Serveurs SET [Code machine]='\" + $computer +\" -OLD\" + \"' WHERE Technologie = 'NT' and [Code machine]= '\" + $computer + \"'\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
$Connexion.Close()
Cependant, je n'arrive pas à faire d'insertion :
#---Insertion
$Requete = \"INSERT INTO Serveurs (Technologie, [code machine]) VALUES (NT,$computer)\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
L'erreur retournée est :
Exception calling \"Fill\" with \"1\" argument(s): \"Aucune valeur donnée pour un ou
plusieurs des paramètres requis.\"
At D:\Stage\Script\PowerShell\Modif_Asset_Virtualisation.ps1:56 char:24
+ [void]$DataAdapter.Fill( <<<< $DataSet)
Message édité par: matthias, à: 3/07/09 15:44<br><br>Message édité par: matthias, à: 3/07/09 15:45
Je dispose une base access, dans laquelle le fais des recherches et mises à jour :
#---Connexion
$FileName=\"D:\MaBase.mdb\"
$NomTable=\"serveurs\"
$StrConnexion=\"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$FileName\"
$Connexion = new-object System.Data.OleDb.OleDBConnection($StrConnexion)
#---Recherche
$Requete = \"Select * from Serveurs where Technologie = 'NT' and [Code machine]= '\" + $computer + \"'\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
$Dataset.Tables[0].TableName =$NomTable
$maTable= $dataset.Tables[$NomTable]
foreach ($R in $maTable.Rows)
{
Write-host MaBase $computer -backgroundcolor \"white\" -Foregroundcolor \"green\"
}
$Connexion.Close()
#---Mise à jour
$Requete = \"UPDATE Serveurs SET [Code machine]='\" + $computer +\" -OLD\" + \"' WHERE Technologie = 'NT' and [Code machine]= '\" + $computer + \"'\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
$Connexion.Close()
Cependant, je n'arrive pas à faire d'insertion :
#---Insertion
$Requete = \"INSERT INTO Serveurs (Technologie, [code machine]) VALUES (NT,$computer)\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)
L'erreur retournée est :
Exception calling \"Fill\" with \"1\" argument(s): \"Aucune valeur donnée pour un ou
plusieurs des paramètres requis.\"
At D:\Stage\Script\PowerShell\Modif_Asset_Virtualisation.ps1:56 char:24
+ [void]$DataAdapter.Fill( <<<< $DataSet)
Message édité par: matthias, à: 3/07/09 15:44<br><br>Message édité par: matthias, à: 3/07/09 15:45
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 14 ans 8 mois #5118
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Insert Into dans BDD Access
Salut,
la connexion est-elle valide (\"open\") ?
La construction de ta requête d'insertion est-elle correcte ?
Fonctionne-t-elle avec un requêteur (Access ou autre) ?
la connexion est-elle valide (\"open\") ?
La construction de ta requête d'insertion est-elle correcte ?
Fonctionne-t-elle avec un requêteur (Access ou autre) ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- matthias
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 14 ans 8 mois #5119
par matthias
Réponse de matthias sur le sujet Re:Insert Into dans BDD Access
Bonjour,
N'ayant pas eut de retour sur ce sujet, j'ai abandonné ce script.
Si quelqu'un à la solution, ce serait avec plaisir.
Merci.
N'ayant pas eut de retour sur ce sujet, j'ai abandonné ce script.
Si quelqu'un à la solution, ce serait avec plaisir.
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 14 ans 8 mois #5120
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Insert Into dans BDD Access
matthias écrit:
Mais comme on ne dispose ni du script, ni du fichier de ta base, difficile de t'aider.
C'est peut être, outre la période, une des raisons qui ont fait que tu as eu peu de retour .
Dés que j'ai le temps je vérifie l'insertion sur une base de démos d'Access. A première vue ton approche me semble correcte.Si quelqu'un à la solution, ce serait avec plaisir.
Mais comme on ne dispose ni du script, ni du fichier de ta base, difficile de t'aider.
C'est peut être, outre la période, une des raisons qui ont fait que tu as eu peu de retour .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Madrolle
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 47
- Remerciements reçus 0
il y a 14 ans 7 mois #5235
par Madrolle
ShellDealer sur Twitter
Réponse de Madrolle sur le sujet Re:Insert Into dans BDD Access
as tu des contraintes sur les champs qui rendrait une insertion invalide, même en SQL ?
ShellDealer sur Twitter
Connexion ou Créer un compte pour participer à la conversation.
- Lymnia
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 52
- Remerciements reçus 0
il y a 14 ans 7 mois #5238
par Lymnia
Pour WMI, pensez à scriptomatic ça peut aider quand on connait pas la classe que l'on voudrait utiliser.
Réponse de Lymnia sur le sujet Re:Insert Into dans BDD Access
Je crois que sont erreur est toute bête.
il manque les ''
donc je pense qu'il faut écrire:
[code:1]$Requete = \"INSERT INTO Serveurs (Technologie, [code machine]) VALUES ('NT','\" + $computer + \"')\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)[/code:1]
Mais après...je suis un débutant.
Cordialement.
il manque les ''
donc je pense qu'il faut écrire:
[code:1]$Requete = \"INSERT INTO Serveurs (Technologie, [code machine]) VALUES ('NT','\" + $computer + \"')\"
$cmd = New-object System.Data.OleDb.OleDbCommand($Requete,$Connexion)
$DataAdapter = new-object System.Data.OleDB.OleDBDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
[void]$DataAdapter.Fill($DataSet)[/code:1]
Mais après...je suis un débutant.
Cordialement.
Pour WMI, pensez à scriptomatic ça peut aider quand on connait pas la classe que l'on voudrait utiliser.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.080 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Insert Into dans BDD Access