Question Insert Into dans BDD Access

Plus d'informations
il y a 14 ans 9 mois #4905 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

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

Plus d'informations
il y a 14 ans 8 mois #5118 par Laurent Dardenne
Salut,
la connexion est-elle valide (\&quot;open\&quot;) ?
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.

Plus d'informations
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.

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

Plus d'informations
il y a 14 ans 8 mois #5120 par Laurent Dardenne
matthias écrit:

Si quelqu'un à la solution, ce serait avec plaisir.

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

Plus d'informations
il y a 14 ans 7 mois #5235 par Madrolle
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.

Plus d'informations
il y a 14 ans 7 mois #5238 par Lymnia
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 = \&quot;INSERT INTO Serveurs (Technologie, [code machine]) VALUES ('NT','\&quot; + $computer + \&quot;')\&quot;
$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 &agrave; scriptomatic &ccedil;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
Propulsé par Kunena