Вставка Powershell в MS Access с предложением WHERE - PullRequest
0 голосов
/ 08 июля 2019

Попытка вставить значения в БД MS Access на основе значений, введенных в форму powershell с предложением WHERE.Я получаю простую ошибку, но пытаюсь ее решить («Отсутствует точка с запятой (;) в конце инструкции SQL»)

Вот мой базовый код;

$query = "INSERT INTO SignIns ([DateTimeOUT], [SignedOut]) VALUES ('$($info.F1)','$($info.F2)') FROM $Info WHERE SignIns.Surname = '$($Info.F3)'" 
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query
$result = $cmd.ExecuteNonQuery()
$conn.Close()

Я исправилдобавить точку с запятой во всех местах, которые я мог бы решить, но, к счастью, все равно возвращает ту же ошибку (Отсутствует точка с запятой в конце оператора SQL);

    $query = "INSERT INTO SignIns ([DateTimeOUT], [SignedOut]) VALUES ('$($info.F1)','$($info.F2)') FROM $Info WHERE SignIns.Surname = '$($Info.F3);';"; 
    $cmd = $conn.CreateCommand()
    $cmd.CommandText = $query;
    $result = $cmd.ExecuteNonQuery();
    $conn.Close()

(для справки я добавилточка с запятой в конце моего предложения WHERE, в конце переменной $ Query и пыталась добавить в конец запроса $ при выполнении в переменной $ cmd.commandtext, а также в конце переменной $ result.

Я ожидаю, что оператор будет выполняться как обычно и будет обновляться с заданными значениями. Тестирование в самой базе данных Access затруднительно, так как я не могу ссылаться на мою форму PS изнутри БД. Любая помощь очень ценится,

Спасибо.

1 Ответ

0 голосов
/ 08 июля 2019

Обновление: добавление запроса в UPDATE теперь позволяет мне «вставлять» значения с помощью оператора WHERE, следуя простой логике.

$conn.Open()
$query = "UPDATE SignIns SET DateTimeOUT = '$($info.F1)' WHERE SignIns.Surname = '$($Info.F3)'";
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query;
$result = $cmd.ExecuteNonQuery();

$query = "UPDATE SignIns SET SignedOut = '$($info.F2)' WHERE SignIns.Surname = '$($Info.F3)'";
$cmd = $conn.CreateCommand()
$cmd.CommandText = $query;
$result = $cmd.ExecuteNonQuery();
$conn.Close()

Этот метод обычно не используется при вводе новых значений втаблица, но тот же результат, так что .. Я не думаю, что есть какие-либо последствия.Вероятно, для обновления требуется «Обновление от NULL до VALUE», а не «ВСТАВИТЬ ОТ источника в DESINTATION» (где)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...