Question
Bug Powershell ?
- MACHETTO
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 18
- Remerciements reçus 0
il y a 13 ans 3 mois #13346
par MACHETTO
Bug Powershell ? a été créé par MACHETTO
Bonjour,
Si qqu 'un peut me donner une explication au pb suivant ?
Sur phpmyadmin, je tape dans la fenetre sql
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
Retour : OK
Dans Powershell, j'execute :
[code:1][void] [system.reflection.Assembly]::LoadWithPartialName(\"MySql.Data\"«»)
$serv = \"127.0.0.1\"
$port = \"3306\"
$user = \"root\"
$password = \"\"
$mysql = New-Object MySql.Data.MySqlClient.MySqlConnection(\"server=$serv;port=$port;uid=$user;pwd=$password;database=$db;Pooling=False\"«»)
$mysql.Open()
$reqStr =
\"
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
\"
$req = New-Object Mysql.Data.MysqlClient.MySqlCommand($reqStr,$mysql)
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($req)
$dataSet = New-Object System.Data.DataSet
$dataAdapter.Fill($dataSet,\"test\"«»)
$res = $dataSet.Tables[\"test\"]
$res | Format-Table
$mysql.Close()
[/code:1]
Et je recois le message d'erreur
Exception lors de l'appel de « Fill » avec « 2 » argument(s) : « Unknown column 'ame' in 'field list' »
Pk me tronque t il le 'n' de name ?
Merci<br><br>Message édité par: Arnaud, à: 18/12/12 17:25
Si qqu 'un peut me donner une explication au pb suivant ?
Sur phpmyadmin, je tape dans la fenetre sql
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
Retour : OK
Dans Powershell, j'execute :
[code:1][void] [system.reflection.Assembly]::LoadWithPartialName(\"MySql.Data\"«»)
$serv = \"127.0.0.1\"
$port = \"3306\"
$user = \"root\"
$password = \"\"
$mysql = New-Object MySql.Data.MySqlClient.MySqlConnection(\"server=$serv;port=$port;uid=$user;pwd=$password;database=$db;Pooling=False\"«»)
$mysql.Open()
$reqStr =
\"
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
\"
$req = New-Object Mysql.Data.MysqlClient.MySqlCommand($reqStr,$mysql)
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($req)
$dataSet = New-Object System.Data.DataSet
$dataAdapter.Fill($dataSet,\"test\"«»)
$res = $dataSet.Tables[\"test\"]
$res | Format-Table
$mysql.Close()
[/code:1]
Et je recois le message d'erreur
Exception lors de l'appel de « Fill » avec « 2 » argument(s) : « Unknown column 'ame' in 'field list' »
Pk me tronque t il le 'n' de name ?
Merci<br><br>Message édité par: Arnaud, à: 18/12/12 17:25
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 3 mois #13349
par SiSMik
Réponse de SiSMik sur le sujet Re:Bug Powershell ?
Salut,
Tu devrais essayer de déclarer ta requête SQL d'une autre façon.
[code:1]$reqStr =
\"
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
\"[/code:1]
Ce code, devient
[code:1]$reqStr ='
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
'
[/code:1]
Comme ceci les ` ne sont pas inteprètés par powershell.
Sinon `n correspond à un saut de ligne
Bon courage
Tu devrais essayer de déclarer ta requête SQL d'une autre façon.
[code:1]$reqStr =
\"
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
\"[/code:1]
Ce code, devient
[code:1]$reqStr ='
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
'
[/code:1]
Comme ceci les ` ne sont pas inteprètés par powershell.
Sinon `n correspond à un saut de ligne
Bon courage
Connexion ou Créer un compte pour participer à la conversation.
- MACHETTO
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 18
- Remerciements reçus 0
il y a 13 ans 3 mois #13356
par MACHETTO
Réponse de MACHETTO sur le sujet Re:Bug Powershell ?
Merci pour le `n
mais avec ta proposition, voici le code
$reqStr =
'
use `modele1`;
INSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,'Non','non',0);
'
et voici le message d'erreur que j'obtiens :
Jeton « Non','non',0);
' » inattendu dans une expression ou une instruction.
+ I <<<< NSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,'Non','non',0);
+ CategoryInfo : ParserError: (Non','non',0);
':String) []
Le pb se trouve maintenant au niveau des values
Merci
Effectivement pour partage d'info :
`t 'T' for tab
`n 'N' for a new line in PowerShell
`r 'R' for return as in carriage return
`a Alert
`b Backspace
`0 (Zero) Null
`' Speech mark
`\" Another speech mark
mais avec ta proposition, voici le code
$reqStr =
'
use `modele1`;
INSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,'Non','non',0);
'
et voici le message d'erreur que j'obtiens :
Jeton « Non','non',0);
' » inattendu dans une expression ou une instruction.
+ I <<<< NSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,'Non','non',0);
+ CategoryInfo : ParserError: (Non','non',0);
':String) []
Le pb se trouve maintenant au niveau des values
Merci
Effectivement pour partage d'info :
`t 'T' for tab
`n 'N' for a new line in PowerShell
`r 'R' for return as in carriage return
`a Alert
`b Backspace
`0 (Zero) Null
`' Speech mark
`\" Another speech mark
Connexion ou Créer un compte pour participer à la conversation.
- MACHETTO
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 18
- Remerciements reçus 0
il y a 13 ans 3 mois #13357
par MACHETTO
Réponse de MACHETTO sur le sujet Re:Bug Powershell ?
le :
INSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,Non,non,0);
ne passe pas non plus
Message :
Exception lors de l'appel de « Fill » avec « 2 » argument(s) : « Unknown column 'Non' in 'field list' »
INSERT INTO `toto` (`titi`,`name`,`slow`, `terme`) VALUES (1,Non,non,0);
ne passe pas non plus
Message :
Exception lors de l'appel de « Fill » avec « 2 » argument(s) : « Unknown column 'Non' in 'field list' »
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 3 mois #13358
par SiSMik
Réponse de SiSMik sur le sujet Re:Bug Powershell ?
au lieu de mettre des ' mets des doubles quotes pour tes values.. ça bugera moins 
car si tu mets des ' c'est comme le déclarateur? de ta variable. C'est une réaction normale de powershell
car si tu mets des ' c'est comme le déclarateur? de ta variable. C'est une réaction normale de powershell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 3 mois #13360
par SiSMik
Réponse de SiSMik sur le sujet Re:Bug Powershell ?
En gros si tu utilies des \"\" dans ta variables il vaut mieux déclarer ton string comme ça
[code:1]$var = 'truc \"machin\" bidule'[/code:1]
Si tu utilies des '' dans ton string..
[code:1]$var = \"bekab 'saucisse' pizza\"[/code:1]
et si tu as des trucs bizarre genre `n `t etc...
[code:1]$var = 'chien `navire canon'[/code:1]
ça c'est les bases, après il y a le here-string
[code:1]$var = @\"
blah blab lah \" blahc\"
truc bidule 'truc'
machin bidule
\"@
[/code:1]
qui permet de traiter des chaines de caractères de façon texte sans ce soucier de la mise en page (donc des `n qui ne sont pas nécessaire) et interprete les variables)
Si besoin n'hésites pas..
bonne soirée !
[code:1]$var = 'truc \"machin\" bidule'[/code:1]
Si tu utilies des '' dans ton string..
[code:1]$var = \"bekab 'saucisse' pizza\"[/code:1]
et si tu as des trucs bizarre genre `n `t etc...
[code:1]$var = 'chien `navire canon'[/code:1]
ça c'est les bases, après il y a le here-string
[code:1]$var = @\"
blah blab lah \" blahc\"
truc bidule 'truc'
machin bidule
\"@
[/code:1]
qui permet de traiter des chaines de caractères de façon texte sans ce soucier de la mise en page (donc des `n qui ne sont pas nécessaire) et interprete les variables)
Si besoin n'hésites pas..
bonne soirée !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.064 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Bug Powershell ?