| Class TmQuery (unit mQuery) |
TDataSet
| Constructors |
constructor Create(AOwner: TComponent);| Functions |
destructor Destroy;
procedure ExecSQL;
function AllocRecordBuffer: PChar;
procedure FreeRecordBuffer(var Buffer: PChar);
procedure GetBookmarkData(Buffer: PChar; Data: Pointer);
function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
function GetCanModify: Boolean;
function GetFieldData(Field: TField; Buffer: Pointer): Boolean;
function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult;
procedure InternalAddRecord(Buffer: Pointer; Append: Boolean);
procedure InternalClose;
procedure InternalEdit;
procedure InternalFirst;dsFilter: RecBuf := FFilterBuffer; { dsNewValue: if FInUpdateCallback then RecBuf := FUpdateCBBuf.
procedure InternalInitFieldDefs;
procedure InternalInitRecord(Buffer: PChar);
procedure InternalLast;
procedure InternalOpen;
procedure InternalSetToRecord(Buffer: PChar);ClearBlobCache(Buffer);
function IsCursorOpen: Boolean;
procedure SetBookmarkData(Buffer: PChar; Data: Pointer);
procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
procedure SetFieldData(Field: TField; Buffer: Pointer);
procedure FreeStmt;
function GetActiveRecBuf(var RecBuf: PChar): Boolean;
procedure InitStmt;
procedure QueryChanged(Sender: TObject);
procedure SetDataBase(Value: TmDataBase);
procedure SetQuery(Value: TStrings);| Properties |
property Active :
property AfterClose :
property AfterOpen :
property AfterScroll :
property AutoCalcFields :
property BeforeClose :
property BeforeOpen :
property BeforeScroll :
property DataBase : TmDataBase
property SQL : TStrings| Events |
event OnCalcFields : | Variables |
FCanModify : boolean;
FDataBase : TmDataBase;
FRecBufSize : Word;
FRecInfoOfs : Word;
FRecordSize : Word;
FSQL : TStrings;
hstmt : SQLHSTMT;| Constructors |
constructor Create(AOwner: TComponent);Public declarations
| Functions |
destructor Destroy;
procedure ExecSQL;
function AllocRecordBuffer: PChar;Protected declarations
procedure FreeRecordBuffer(var Buffer: PChar);if BlobFieldCount > 0 then Initialize(PBlobDataArray(Result + FBlobCacheOfs)[0], BlobFieldCount);
procedure GetBookmarkData(Buffer: PChar; Data: Pointer);BookMarks
function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
function GetCanModify: Boolean;
function GetFieldData(Field: TField; Buffer: Pointer): Boolean;SQLSetPos(); InternalGotoBookmark(Buffer + FBookmarkOfs);
function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult;if BlobFieldCount > 0 then Finalize(PBlobDataArray(Buffer + FBlobCacheOfs)[0], BlobFieldCount);
procedure InternalAddRecord(Buffer: Pointer; Append: Boolean);function GetRecordSize: Word; override;
procedure InternalClose;а bookmark прячется в нулевой колонке { InitBufferPointers(False); if CachedUpdates then begin AllocCachedUpdateBuffers(True); SetupCallBack(UpdateCallBackRequired); end; AllocKeyBuffers; DbiSetToBegin(FHandle); PrepareCursor; if Filter <> '' then FExprFilter := CreateExprFilter(Filter, FilterOptions, 0); if Assigned(OnFilterRecord) then FFuncFilter := CreateFuncFilter(@TBDEDataSet.RecordFilter, 1); if Filtered then ActivateFilters;
procedure InternalEdit;
procedure InternalFirst;procedure InternalDelete; virtual; abstract;
dsFilter: RecBuf := FFilterBuffer; { dsNewValue: if FInUpdateCallback then RecBuf := FUpdateCBBuf.pNewRecBuf else RecBuf := ActiveBuffer; dsOldValue: if FInUpdateCallback then RecBuf := FUpdateCBBuf.pOldRecBuf else RecBuf := GetOldRecord;
procedure InternalInitFieldDefs;procedure InternalGotoBookmark(Bookmark: Pointer); virtual; abstract; procedure InternalHandleException; virtual; abstract;
procedure InternalInitRecord(Buffer: PChar);sqlres :=
procedure InternalLast;sqlres :=
procedure InternalOpen;Disconnect;
procedure InternalSetToRecord(Buffer: PChar);procedure InternalPost; virtual; abstract;
ClearBlobCache(Buffer);
function IsCursorOpen: Boolean;создаем описание полей
procedure SetBookmarkData(Buffer: PChar; Data: Pointer);
procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
procedure SetFieldData(Field: TField; Buffer: Pointer);IsBlank: LongBool;
procedure FreeStmt;if ODBCDriverInfo( SQL_CURSOR_SENSITIVITY)=SQL_SENSITIVE then SetStmtOptions( SQL_ATTR_CURSOR_TYPE, SQL_CURSOR_DYNAMIC);
function GetActiveRecBuf(var RecBuf: PChar): Boolean;fkCalculated, fkLookup
procedure InitStmt;
procedure QueryChanged(Sender: TObject);
procedure SetDataBase(Value: TmDataBase);
procedure SetQuery(Value: TStrings);| Properties |
property Active : Published declarations
property AfterClose :
property AfterOpen :
property AfterScroll :
property AutoCalcFields :
property BeforeClose :
property BeforeOpen :
property BeforeScroll :
property DataBase : TmDataBase
property SQL : TStrings| Events |
event OnCalcFields : | Variables |
FCanModify : boolean;
FDataBase : TmDataBase;
FRecBufSize : Word;
FRecInfoOfs : Word;
FRecordSize : Word;
FSQL : TStrings;
hstmt : SQLHSTMT;Private declarations