mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -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)
|
||||
{
|
||||
return HandleSessionRequest(subsetParams, requestContext, session =>
|
||||
try
|
||||
{
|
||||
EditRow[] rows = session.GetRows(subsetParams.RowStartIndex, subsetParams.RowCount).Result;
|
||||
return new EditSubsetResult
|
||||
EditSession session = GetActiveSessionOrThrow(subsetParams.OwnerUri);
|
||||
|
||||
EditRow[] rows = await session.GetRows(subsetParams.RowStartIndex, subsetParams.RowCount);
|
||||
EditSubsetResult result = new EditSubsetResult
|
||||
{
|
||||
RowCount = rows.Length,
|
||||
Subset = rows
|
||||
};
|
||||
});
|
||||
|
||||
await requestContext.SendResult(result);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
await requestContext.SendError(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
smoResult.Refresh();
|
||||
if (smoResult.State != SqlSmoState.Existing)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(objectNamedParts), SR.EditDataObjectNotFound);
|
||||
}
|
||||
|
||||
// Generate the edit column metadata
|
||||
List<EditColumnMetadata> editColumns = new List<EditColumnMetadata>();
|
||||
|
||||
Reference in New Issue
Block a user