mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 10:58:30 -05:00
Fixing misc edit bugs (async/await, table not found) (#300)
* Async/await issue when requesting a edit/subset * Returning good error messages when table/view doesn't exist
This commit is contained in:
@@ -198,18 +198,26 @@ namespace Microsoft.SqlTools.ServiceLayer.EditData
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Task HandleSubsetRequest(EditSubsetParams subsetParams,
|
internal async Task HandleSubsetRequest(EditSubsetParams subsetParams,
|
||||||
RequestContext<EditSubsetResult> requestContext)
|
RequestContext<EditSubsetResult> requestContext)
|
||||||
{
|
{
|
||||||
return HandleSessionRequest(subsetParams, requestContext, session =>
|
try
|
||||||
{
|
{
|
||||||
EditRow[] rows = session.GetRows(subsetParams.RowStartIndex, subsetParams.RowCount).Result;
|
EditSession session = GetActiveSessionOrThrow(subsetParams.OwnerUri);
|
||||||
return new EditSubsetResult
|
|
||||||
|
EditRow[] rows = await session.GetRows(subsetParams.RowStartIndex, subsetParams.RowCount);
|
||||||
|
EditSubsetResult result = new EditSubsetResult
|
||||||
{
|
{
|
||||||
RowCount = rows.Length,
|
RowCount = rows.Length,
|
||||||
Subset = rows
|
Subset = rows
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
await requestContext.SendResult(result);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
await requestContext.SendError(e.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Task HandleUpdateCellRequest(EditUpdateCellParams updateParams,
|
internal Task HandleUpdateCellRequest(EditUpdateCellParams updateParams,
|
||||||
|
|||||||
@@ -77,6 +77,10 @@ namespace Microsoft.SqlTools.ServiceLayer.EditData
|
|||||||
|
|
||||||
// A bug in SMO makes it necessary to call refresh to attain certain properties (such as IsMemoryOptimized)
|
// A bug in SMO makes it necessary to call refresh to attain certain properties (such as IsMemoryOptimized)
|
||||||
smoResult.Refresh();
|
smoResult.Refresh();
|
||||||
|
if (smoResult.State != SqlSmoState.Existing)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(objectNamedParts), SR.EditDataObjectNotFound);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate the edit column metadata
|
// Generate the edit column metadata
|
||||||
List<EditColumnMetadata> editColumns = new List<EditColumnMetadata>();
|
List<EditColumnMetadata> editColumns = new List<EditColumnMetadata>();
|
||||||
|
|||||||
Reference in New Issue
Block a user