| | |
| | | [void]$reader.GetValues($values) |
| | | [void]$rows.Add($values) |
| | | } |
| | | return $rows |
| | | # 必须用逗号包一层返回:函数返回集合时 PowerShell 会拆一层,只有一行结果时 |
| | | # 调用方 foreach 拿到的就不是"行"而是那一行的列值本身,$row[0] 会变成字符串首字符。 |
| | | return ,$rows |
| | | } |
| | | finally { $reader.Close() } |
| | | } |
| | |
| | | $tablesSeen = 0 |
| | | $emptyChannels = 0 |
| | | |
| | | foreach ($database in (Find-ActiveDatabases $connection)) { |
| | | $databases = Find-ActiveDatabases $connection |
| | | foreach ($database in $databases) { |
| | | foreach ($table in (Find-ChannelTables $connection $database)) { |
| | | if ($table -notmatch '^Ws(\d+)_IV_0$') { continue } |
| | | $channel = [int]$Matches[1] |
| | |
| | | Save-ReadPositions $positions |
| | | Write-Log (" 本轮扫过 {0} 张通道表 / {1} 个通道;其中 {2} 个通道没有新行,推送 {3} 行" -f ` |
| | | $tablesSeen, $seenChannels.Count, $emptyChannels, $sentRows) |
| | | if ($tablesSeen -eq 0) { |
| | | # 一张都没扫到通常是库列表不对(而不是这些库真的空):把库名念出来,便于现场判断 |
| | | Write-Log (" 提示:这些库里都没有 Ws*_IV_0 表 —— " + (($databases | Select-Object -First 8) -join ', ')) |
| | | } |
| | | return $sentRows |
| | | } |
| | | |