2013-06-06 3 views
-2

Используя этот сценарий подключения к базе данных, я нашел здесь. Я изменил его и сделал правильную настройку, чтобы запустить скрипт, но не понял ошибку, которую я получаю.Невозможно вызвать сценарий PowerShell для доступа к базе данных (MYSQL)

Код скрипта here:

Param(
    [Parameter(
    Mandatory = $true, 
    ParameterSetName = '', 
    ValueFromPipeline = $true)] 
    [string]$Query 
) 

$MySQLAdminUserName = 'myName' 
$MySQLAdminPassword = 'myPass' 
$MySQLDatabase = 'myDatabase' 
$MySQLHost = 'HostingServerForMyDatabase' 
$ConnectionString = server= + $MySQLHost + ;port=3306;uid= + $MySQLAdminUserName + ;pwd= + $MySQLAdminPassword + ;database=+$MySQLDatabase+ 

Try { 
    [void][System.Reflection.Assembly]LoadWithPartialName(MySql.Data) 
    $Connection = New-Object MySql.Data.MySqlClient.MySqlConnection 
    $Connection.ConnectionString = $ConnectionString 
    $Connection.Open() 

    $Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection) 
    $DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command) 
    $DataSet = New-Object System.Data.DataSet 
    $RecordCount = $dataAdapter.Fill($dataSet, data) 
    $DataSet.Tables[0] 
    } 

Catch { 
    Write-Host ERROR Unable to run query $query `n$Error[0] 
} 

Finally { 
    $Connection.Close() 
    } 

И так, это ошибка я получаю с помощью следующей команды -

КОМАНДА:. \ MySQL.ps1 -QUERY «выберите GUID FROM MYTABLE "

ОШИБКА: Параметрические децилерации представляют собой список имен переменных с запятой с необязательными выражениями инициализатора. В (мой сценарий путь к файлу) \ MySQL.ps1: 5 полукокса: 30 + ValueFromPipeline = $ верно)] < < < <

+1

Вы не копировали этот же скрипт так, как будто он связан. Дважды проверьте содержимое. '$ ConnectionString' поврежден как на вашей версии, так и на оригинале. – vonPryz

ответ

2

Видимо ошибка не от выполнения скрипта, как в показано в вопросе, ни в ссылка, но неизвестный другой скрипт.

Сообщение об ошибке показывает, что отсутствуют закрывающие круглые скобки.

Parameter declerations are a comma-serperated list of variable names with optional initializer expressions. At (my script file path)\MySQL.ps1:5 char:30 + ValueFromPipeline = $true>] <<<<

Код, который вы разместили здесь и в ссылке, имеет его правильное.

Param(
    [Parameter(
    Mandatory = $true, 
    ParameterSetName = '', 
    ValueFromPipeline = $true)] 
    [string]$Query 
) 

Уведомление $ верно)]

Правильное MySQL.ps1 так это точно так же, как в вашей ссылке.

+0

Это была опечатка, которую я отредактирую для этого. Там правильно, это не причина. – thekevshow

+1

@ kev2316 Обновленный скрипт по-прежнему содержит часть '$ ConnectionString'. Скопируйте и вставьте весь скрипт вместо того, чтобы вводить его. Таким образом, вы избежите опечаток. – vonPryz

+0

@ kev2316 И, пожалуйста, скопируйте все ошибки в целом –

 Смежные вопросы

  • Нет связанных вопросов^_^