Show / Hide Table of Contents

Class SqlServerOperations

Database operations for for SQL servers up to and including version 7.

Inheritance
object
DatabaseOperations
SqlServerOperations
SqlServer8Operations
Implements
IDatabaseOperations
Inherited Members
DatabaseOperations._currentDialect
DatabaseOperations._allowTravelTransactionLog
DatabaseOperations._ttlFlags
DatabaseOperations.GetCurrent()
DatabaseOperations.GetSpecific(string, string)
DatabaseOperations.SetOptions(bool, TtlFlags)
DatabaseOperations.TruncateTableAsync(SoTable, TruncateOptions, bool, CancellationToken)
DatabaseOperations.WipeAndImportTableAsync(SoTable, IAsyncEnumerable<object[]>, CancellationToken)
DatabaseOperations.WipeAndImportTableAsync(SoTable, IEnumerable<object[]>, CancellationToken)
DatabaseOperations.ImportTableAsync(SoTable, IAsyncEnumerable<object[]>, List<int>, CancellationToken)
DatabaseOperations.BulkDeleteAsync(Select, CancellationToken)
DatabaseOperations.BulkDeleteAsync(SoTable, int[])
DatabaseOperations.NonLoggedMassUpdateAsync(Select, Dictionary<FieldInfo, object>, CancellationToken)
DatabaseOperations.NonLoggedMassUpdate(int[], Dictionary<FieldInfo, object>)
DatabaseOperations.GetUserAdmin()
DatabaseOperations.GetTableAdmin()
DatabaseOperations.GetDbConnectionForUserAdmin()
DatabaseOperations.ExecuteNonQueryAsync(string, CancellationToken)
DatabaseOperations.GetConnectionString()
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace: SuperOffice.Data.Dialect
Assembly: SoDataBase.BusinessLogic.dll
Syntax
public class SqlServerOperations : DatabaseOperations, IDatabaseOperations

Properties

NumShipoutThreads

The number of parallel threads that process the data chunks and write them to the database

Declaration
protected override int NumShipoutThreads { get; }
Property Value
Type Description
int
Overrides
DatabaseOperations.NumShipoutThreads

ShipoutBatchSize

The size of the batches that are queued for shipping out to the database

Declaration
protected override int ShipoutBatchSize { get; }
Property Value
Type Description
int
Overrides
DatabaseOperations.ShipoutBatchSize

Methods

GetDatabaseSize()

Get the total database size (including any unallocated space inside the db, etc) in megabytes

Declaration
public override int GetDatabaseSize()
Returns
Type Description
int
Overrides
DatabaseOperations.GetDatabaseSize()

GetDatabaseVersion()

Database operations for for SQL servers up to and including version 7.

Declaration
public override string GetDatabaseVersion()
Returns
Type Description
string
Overrides
DatabaseOperations.GetDatabaseVersion()

GetIdentityFromAutoIncrement(SoTable)

Obtain a new row ID for a tabel with database-specific autoincrement

Declaration
public override int GetIdentityFromAutoIncrement(SoTable soTable)
Parameters
Type Name Description
SoTable soTable
Returns
Type Description
int
Overrides
DatabaseOperations.GetIdentityFromAutoIncrement(SoTable)
Remarks

Here on SQL Server we do that by inserting the row with dummy/default data, and then retrieving the just-generated ID. See also http://msdn.microsoft.com/en-us/library/ks9f57t0.aspx

GetKilobytes(SoTable)

Database operations for for SQL servers up to and including version 7.

Declaration
public override int GetKilobytes(SoTable table)
Parameters
Type Name Description
SoTable table
Returns
Type Description
int
Overrides
DatabaseOperations.GetKilobytes(SoTable)

GetRowCountAsync(SoTable, CancellationToken)

Get count of rows in the table (as quickly as possible). Not guaranteed to return exact results.

Declaration
public override Task<int> GetRowCountAsync(SoTable table, CancellationToken cancellationToken = default)
Parameters
Type Name Description
SoTable table

Table we want counts for

CancellationToken cancellationToken
Returns
Type Description
Task<int>

Approximate row count.

Overrides
DatabaseOperations.GetRowCountAsync(SoTable, CancellationToken)

InnerTruncateTableAsync(SoTable, TruncateOptions)

Throw away all the rows in a table. On most databases this is an operation that is very fast, but it is not logged in the database transaction log and so cannot be rolled back.

It is also not logged in the superoffice traveltransactionlog, so it is not replicated, and should generally not be used on tables that are subject to replication.
Declaration
public override Task InnerTruncateTableAsync(SoTable table, TruncateOptions options = TruncateOptions.DeallocateStorage)
Parameters
Type Name Description
SoTable table
TruncateOptions options
Returns
Type Description
Task
Overrides
DatabaseOperations.InnerTruncateTableAsync(SoTable, TruncateOptions)

WriteBulkRowsAsync(BulkImportInfo, CancellationToken)

Actual bulk insert implementation

Declaration
protected override Task WriteBulkRowsAsync(DatabaseOperations.BulkImportInfo importInfo, CancellationToken cancellationToken)
Parameters
Type Name Description
DatabaseOperations.BulkImportInfo importInfo
CancellationToken cancellationToken
Returns
Type Description
Task
Overrides
DatabaseOperations.WriteBulkRowsAsync(DatabaseOperations.BulkImportInfo, CancellationToken)

Implements

IDatabaseOperations

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top