Class TUpdateSQLProvider (unit USQLProv)

Inherits from

TProvider

Constructors


constructor Create(AOwner: TComponent);

TUpdateSQLProvider


Functions

function ApplyUpdates(Delta: OleVariant; MaxErrors: Integer; out ErrorCount: Integer): OleVariant;

If user scrolled the delta dataset during the update record event, restore the current position.

procedure BindParameters(Query: TQuery; DeltaData: TDataSet; NewOnly: Boolean);


procedure GenerateUpdateSQL(DeltaData: TClientDataSet; const TableName, TabAlias, QuoteChar: string; SQL: TStrings);

Do some crude parsing to find a table name from the select statement

procedure DoUpdate(DeltaData: TDeltaDataSet; Database: TDatabase);

Updating

function GetQuoteChar(Database: TDatabase): string;

SQL Generation

function GetTableName: string;


function HandleUpdateError(DeltaData: TDeltaDataSet; E: EDatabaseError; var MaxErrors, ErrorCount: Integer): Boolean;

Include conflicting values if any

procedure InitializeConflictBuffer(DeltaData: TDeltaDataSet; ErrCode: Integer);

Error Handling

procedure LogUpdateError(DeltaData: TDeltaDataSet; E: EUpdateError; Response: TResolverResponse);


function GetSQLIndex(Index: Integer): TStrings;


procedure SetSQLIndex(Index: Integer; Value: TStrings);


Properties

property DeleteSQL : TStrings


property InsertSQL : TStrings


property ModifySQL : TStrings


property SQLGenOptions : TSQLGenOptions


property TableName : string


property UpdateSQL : TUpdateSQL


Events

event OnUpdateRecord : TUpdateRecordEvent


Variables

FConflictTab : TTable;


FDeltaData : TDeltaDataSet;


FOnUpdateRecord : TUpdateRecordEvent;


FPrevErrCode : DBIResult;


FPrevResponse : TResolverResponse;


FResultData : TResultDataSet;


FSQLGenOptions : TSQLGenOptions;


FTableName : string;


FUpdateSQL : TUpdateSQL;



Constructors


constructor Create(AOwner: TComponent);

TUpdateSQLProvider


Functions


function ApplyUpdates(Delta: OleVariant; MaxErrors: Integer; out ErrorCount: Integer): OleVariant;

If user scrolled the delta dataset during the update record event, restore the current position.


procedure BindParameters(Query: TQuery; DeltaData: TDataSet; NewOnly: Boolean);


procedure GenerateUpdateSQL(DeltaData: TClientDataSet; const TableName, TabAlias, QuoteChar: string; SQL: TStrings);

Do some crude parsing to find a table name from the select statement


procedure DoUpdate(DeltaData: TDeltaDataSet; Database: TDatabase);

Updating


function GetQuoteChar(Database: TDatabase): string;

SQL Generation


function GetTableName: string;


function HandleUpdateError(DeltaData: TDeltaDataSet; E: EDatabaseError; var MaxErrors, ErrorCount: Integer): Boolean;

Include conflicting values if any


procedure InitializeConflictBuffer(DeltaData: TDeltaDataSet; ErrCode: Integer);

Error Handling


procedure LogUpdateError(DeltaData: TDeltaDataSet; E: EUpdateError; Response: TResolverResponse);


function GetSQLIndex(Index: Integer): TStrings;


procedure SetSQLIndex(Index: Integer; Value: TStrings);


Properties


property DeleteSQL : TStrings


property InsertSQL : TStrings


property ModifySQL : TStrings


property SQLGenOptions : TSQLGenOptions


property TableName : string


property UpdateSQL : TUpdateSQL


Events


event OnUpdateRecord : TUpdateRecordEvent


Variables


FConflictTab : TTable;


FDeltaData : TDeltaDataSet;


FOnUpdateRecord : TUpdateRecordEvent;


FPrevErrCode : DBIResult;


FPrevResponse : TResolverResponse;


FResultData : TResultDataSet;


FSQLGenOptions : TSQLGenOptions;


FTableName : string;


FUpdateSQL : TUpdateSQL;