Question Bug Powershell ?

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

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

Plus d'informations
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 =
\&quot;
use `modele1`;
INSERT INTO `toto` (`name`,`field2`) VALUES (2,1);
\&quot;[/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.

Plus d'informations
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 &lt;&lt;&lt;&lt; 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
`\&quot; Another speech mark

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

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

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

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

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

Plus d'informations
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 \&quot;\&quot; dans ta variables il vaut mieux déclarer ton string comme ça

[code:1]$var = 'truc \&quot;machin\&quot; bidule'[/code:1]

Si tu utilies des '' dans ton string..

[code:1]$var = \&quot;bekab 'saucisse' pizza\&quot;[/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 = @\&quot;
blah blab lah \&quot; blahc\&quot;
truc bidule 'truc'
machin bidule
\&quot;@
[/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.060 secondes
Propulsé par Kunena