sqldatareader не читает строки при размещении внутри конструкции l oop. есть одна строка, возвращенная из запроса sql, который я проверял в БД. когда я читаю это просто без какой-либо конструкции, это чтение данных. Следующий фрагмент кода, помещенный над конструкцией while l oop, дает мне данные в файле журнала. в то время как l oop не будет активирован, так как есть только одна строка, и это нормально.
$sqloutqryreader = MsSqlQueryExecutor -SqlQuery $SqlQuery -logfile $logfile
$sqloutqryreader.Read()
$InputFileLst = $sqloutqryreader["InputFiles"]
Add-Content -Value "$TimeinSec Log: Reading data from sql reader $InputFileLst" -Path $logfile
$rdrRowCnt = 0
while($sqloutqryreader.Read())
{
$rdrRowCnt++
if($rdrRowCnt -gt 1)
{
Add-Content -Value "$TimeinSec Ambiguity: two Records are found for the current job: $jobname in the $mastTableNm table, hence aborting" -Path $logfile
exit
}
$InputFileLst = $sqloutqryreader["InputFiles"].Split(";")
$OutputFileLst = $sqloutqryreader["OutputFiles"].Split(";")
Add-Content -Value "$TimeinSec Log: Input files:$InputFileLst and outputfiles:$OutputFileLst found for the current job: $jobname in the $mastTableNm table" -Path $logfile
}
однако, когда я помещаю следующее, пока l oop конструирует, в то время как l oop не активируется , Поскольку есть одна строка, она должна быть активирована.
$sqloutqryreader = MsSqlQueryExecutor -SqlQuery $SqlQuery -logfile $logfile
$rdrRowCnt = 0
while($sqloutqryreader.Read())
{
$rdrRowCnt++
if($rdrRowCnt -gt 1)
{
Add-Content -Value "$TimeinSec Ambiguity: two Records are found for the current job: $jobname in the $mastTableNm table, hence aborting" -Path $logfile
exit
}
$InputFileLst = $sqloutqryreader["InputFiles"].Split(";")
$OutputFileLst = $sqloutqryreader["OutputFiles"].Split(";")
Add-Content -Value "$TimeinSec Log: Input files:$InputFileLst and outputfiles:$OutputFileLst found for the current job: $jobname in the $mastTableNm table" -Path $logfile
}