Link to home
Start Free TrialLog in
Avatar of bibi92
bibi92Flag for France

asked on

Method invocation failed because [System.Data.DataRow] does not contain a method named 'Split'.

Hello

I try to display starttime and endtime but error occurs Method invocation failed because [System.Data.DataRow] does not contain a method named 'Split'.

$server = "test\srv"
$sqlcmd = (
"DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks)FROM sys.dm_os_sys_info); 

SELECT TOP(1) 
               convert(varchar, DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()))  +'|'+
			   convert(varchar, GETDATE()) +'|'+
               convert(varchar, SQLProcessUtilization)
FROM ( 
	  SELECT record.value('(./Record/@id)[1]', 'int') AS record_id, 
			record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') AS [SystemIdle], 
			record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]','int') AS [SQLProcessUtilization],
			[timestamp] 
	  FROM ( 
			SELECT [timestamp], CONVERT(xml, record) AS [record] 
			FROM sys.dm_os_ring_buffers 
			WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR' 
			AND record LIKE N'%<SystemHealth>%') AS x 
	  ) AS y 
ORDER BY record_id DESC;"
)

$datasource = Invoke-SqlCmd -Query "$sqlcmd" -ServerInstance $server -QueryTimeout 200000
if ($datasource) {
foreach ($column in $datasource) {
$array_str = $column.Split("|")
$starttime = $array_str[0].Trim()
$endtime = $array_str[1].Trim()
$Title=$starttime + " to " + $endtime
$Title 
}
}		

Open in new window


Why ?

Thanks

Regards
ASKER CERTIFIED SOLUTION
Avatar of Rainer Jeschor
Rainer Jeschor
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial