This is my solution for Beginner Event 4
Connecting and extracting data from a Access Database and retrieving the best result. Now of course you could get the correct result with an SQL statement, by I preferred to do it Powershell (this is actually what the whole purpose of this competition is for)
1: $adOpenStatic = 3 2: $adLockOptimistic = 3 3: 4: $objConnection = New-Object -comobject ADODB.Connection 5: $objRecordset = New-Object -comobject ADODB.Recordset 6: 7: $objConnection.Open("Provider = Microsoft.Jet.OLEDB.4.0; `
8: Data Source = C:\users\msaidelk\Desktop\HighJumperDatabase.mdb")9: $objRecordset.Open("Select * from [High Jumper Data]", $objConnection, `
10: $adOpenStatic,$adLockOptimistic) 11: $objRecordset.MoveFirst() 12: 13: $mycollection = @() #initialize variable 14: 15: #Create a new object with the columns
16: $myObj = "" | Select Name, SeasonBest, PersonalBest
17: 18: do {
19: #go through each record and populate the data20: $myObj.Name = $objRecordset.Fields.Item("Name").Value
21: $myObj.SeasonBest = $objRecordset.Fields.Item("Season Best").Value
22: $myObj.PersonalBest = $objRecordset.Fields.Item("Personal Best").Value
23: 24: $mycollection += $myObj 25: 26: #Go to the next record 27: $objRecordset.MoveNext() 28: } 29: until ( $objRecordset.EOF -eq $True ) 30: 31: #Now sort the record according to Season best and Personal Best 32: #get the best result and then output the Name 33: ($mycollection | sort -Descending SeasonBest, PersonalBest | ` 34: select -First 1).Name 35: 36: #Close connection to the Database 37: $objRecordset.Close() 38: $objConnection.Close()