Skip to content

Commit c9b4fd9

Browse files
Scott DoverScott Dover
authored andcommitted
fix: fix formatting for itc/validate sort
Signed-off-by: Scott Dover <[email protected]>
1 parent 2a16789 commit c9b4fd9

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

client/src/connection/itc/ItcLibraryAdapter.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,8 @@ class ItcLibraryAdapter implements LibraryAdapter {
185185
const sortString = sortModel
186186
.map((col) => `${col.colId} ${col.sort}`)
187187
.join(",");
188-
const fullTableName = `${item.library}.${item.name}`;
189188
const code = `
190-
$runner.GetDatasetRecords("${fullTableName}", ${start}, ${limit}, "${sortString}")
189+
$runner.GetDatasetRecords("${item.library}","${item.name}", ${start}, ${limit}, "${sortString}")
191190
`;
192191
const output = await executeRawCode(code);
193192
try {

client/src/connection/itc/script.ts

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -244,21 +244,26 @@ class SASRunner{
244244
Write-Host "${LineCodes.ResultsFetchedCode}"
245245
}
246246
247-
[void]GetDatasetRecords([string]$tableName, [int]$start = 0, [int]$limit = 100, [string]$sortCriteria = "") {
247+
[void]GetDatasetRecords([string]$library, [string]$table, [int]$start = 0, [int]$limit = 100, [string]$sortCriteria = "") {
248248
$objRecordSet = New-Object -comobject ADODB.Recordset
249249
$objRecordSet.ActiveConnection = $this.dataConnection # This is needed to set the properties for sas formats.
250250
$objRecordSet.Properties.Item("SAS Formats").Value = "_ALL_"
251251
252-
$query = "SELECT * FROM $tableName"
252+
$tableName = $library + "." + $table
253253
if ($sortCriteria -ne "") {
254-
$query = $query + " ORDER BY " + $sortCriteria
254+
$epoch = [datetime]::FromFileTimeUtc(0)
255+
$currentUtcTime = (Get-Date).ToUniversalTime()
256+
$ts = [int64]($currentUtcTime - $epoch).TotalSeconds
257+
$tableName = "WORK.temp_$ts"
258+
$this.dataConnection.Execute("CREATE VIEW $tableName AS SELECT * FROM $library.$table ORDER BY $sortCriteria")
255259
}
260+
256261
$objRecordSet.Open(
257-
$query,
258-
$this.dataConnection, # Use the active connection
259-
3, # adOpenStatic
262+
$tableName,
263+
[System.Reflection.Missing]::Value, # Use the active connection
264+
2, # adOpenDynamic
260265
1, # adLockReadOnly
261-
1 # adCmdText
266+
512 # adCmdTableDirect
262267
)
263268
264269
$records = [List[List[object]]]::new()
@@ -270,7 +275,6 @@ class SASRunner{
270275
}
271276
272277
$objRecordSet.AbsolutePosition = $start + 1
273-
274278
for ($j = 0; $j -lt $limit -and $objRecordSet.EOF -eq $False; $j++) {
275279
$cell = [List[object]]::new()
276280
for ($i = 0; $i -lt $fields; $i++) {
@@ -292,10 +296,14 @@ class SASRunner{
292296
$result | Add-Member -MemberType NoteProperty -Name "rows" -Value $records
293297
$result | Add-Member -MemberType NoteProperty -Name "count" -Value $count
294298
299+
if ($sortCriteria -ne "") {
300+
$this.dataConnection.Execute("DROP VIEW $tableName")
301+
}
302+
295303
Write-Host $(ConvertTo-Json -Depth 10 -InputObject $result -Compress)
296304
}
297305
298-
[void]GetColumns([string]$libname, [string]$memname) {
306+
[object[]] GetColumnData([string]$libname, [string]$memname) {
299307
$objRecordSet = New-Object -comobject ADODB.Recordset
300308
$objRecordSet.ActiveConnection = $this.dataConnection
301309
$query = @"
@@ -330,6 +338,12 @@ class SASRunner{
330338
$parsedRows += $parsedRow
331339
}
332340
341+
return $parsedRows
342+
}
343+
344+
[void]GetColumns([string]$libname, [string]$memname) {
345+
$parsedRows = $this.GetColumnData($libname, $memname)
346+
333347
Write-Host $(ConvertTo-Json -Depth 10 -InputObject $parsedRows -Compress)
334348
}
335349

0 commit comments

Comments
 (0)