Средство чтения данных ODBC HasRows=True, но нет данных
Я подключаюсь к базе данных Access через ODBC с помощью Powershell, читаю данные из Access, чтобы преобразовать их в другую базу данных. У меня есть один запрос, который вызывает у меня проблемы, потому что, хотя HasRows возвращает True, когда я пытаюсь пройти через считыватель, он действует так, как будто он находится в конце считывателя. Вот код, который я использую
$FMconn = new-object System.Data.Odbc.OdbcConnection
$FMconn.ConnectionString = "DSN=AccessFileMaker"
$FMconn.Open()
$FMCmd = $FMconn.CreateCommand()
$FMCmd.CommandTimeout = 0
$sql = "
SELECT
fd__folder.id as folderid
,fd__folder.folderletter
,wl__wallet.id as walletid
,wl__wallet.walletnumber
FROM
fd__folder
INNER JOIN wl__wallet
ON fd__folder.id_wallet = wl__wallet.id
WHERE
fd__folder.folderLetter > ''
"
$FMCmd.CommandText = $sql
$Reader = $FMCmd.ExecuteReader()
if ($Reader.HasRows) {
while ($Reader.Read())
{
$folderID = $Reader["folderid"].ToString()
$folderletter = $Reader["folderletter"].ToString().TrimEnd()
$walletID = $Reader["walletid"].ToString()
$walletNum = "Wallet " + $Reader["walletnumber"].ToString().TrimEnd()
(other code here to insert data into the other DB but irrelevant to the problem)
}
$Reader.Close()
}
Когда я прохожу код, я добираюсь до while($Reader.Read()) и сразу переходит к $Reader.Close()
Запрос выполняет поиск в Access как есть и возвращает 56 115 записей. Я использовал этот же процесс для извлечения других записей из Access (хотя ни один из запросов не включал соединение). Так почему же я не могу просмотреть записи этого запроса, если в Reader есть строки? Любая помощь в отладке этого будет принята с благодарностью.