⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqldataset.hpp

📁 MYSQL 连接控件 MYSQL 连接控件
💻 HPP
📖 第 1 页 / 共 2 页
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'MySQLDataset.pas' rev: 6.00

#ifndef MySQLDatasetHPP
#define MySQLDatasetHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <MySQLParser.hpp>	// Pascal unit
#include <MySQLServer.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <DB.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Mysqldataset
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TMySQLDatasetBase;
typedef void __fastcall (__closure *TMySQLEvent)(TMySQLDatasetBase* Dataset, AnsiString &SQL, bool &Continue);

typedef void __fastcall (__closure *TMySQLMacroEvent)(TMySQLDatasetBase* Dataset, AnsiString AMacro, AnsiString &AValue, bool &ADefault);

typedef void __fastcall (__closure *TMySQLFieldValue)(TMySQLDatasetBase* Dataset, AnsiString AField, __int64 AIndex, AnsiString &AValue);

typedef DynamicArray<AnsiString >  TBlobList;

struct TRecInfo;
typedef TRecInfo *PRecInfo;

#pragma pack(push, 1)
struct TRecInfo
{
	DynamicArray<char * >  Data;
	DynamicArray<AnsiString >  Blob;
	char *Calc;
	int Tag;
	__int64 Bookmark;
	Db::TBookmarkFlag BookmarkFlag;
} ;
#pragma pack(pop)

class DELPHICLASS TFieldInfo;
class PASCALIMPLEMENTATION TFieldInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	AnsiString FieldName;
	AnsiString FieldOriginal;
	AnsiString FieldTable;
	AnsiString FieldTableOriginal;
	AnsiString FieldDB;
	AnsiString FieldDefault;
	AnsiString FieldOrigin;
	AnsiString FieldFullName;
	AnsiString FieldValues;
	Byte FieldType;
	unsigned FieldLength;
	unsigned FieldMaxLength;
	unsigned FieldFlags;
	unsigned FieldDec;
	unsigned FieldOfs;
	bool FieldChanged;
	bool FieldReal;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TFieldInfo(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TFieldInfo(void) { }
	#pragma option pop
	
};


class DELPHICLASS TTableInfo;
class PASCALIMPLEMENTATION TTableInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	AnsiString TableName;
	AnsiString TableOriginal;
	AnsiString TableOrigin;
	AnsiString TableDB;
	AnsiString PrimFields;
	AnsiString UniqFields;
	AnsiString MultFields;
	AnsiString AffectedRows;
	AnsiString LastInsertID;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TTableInfo(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TTableInfo(void) { }
	#pragma option pop
	
};


#pragma option push -b-
enum TMySQLStringTypes { stNone, stNormal, stEnum, stSet };
#pragma option pop

class DELPHICLASS TMySQLStringField;
class PASCALIMPLEMENTATION TMySQLStringField : public Db::TStringField 
{
	typedef Db::TStringField inherited;
	
private:
	TMySQLStringTypes FStringType;
	Classes::TStrings* FValues;
	
protected:
	TMySQLStringTypes __fastcall GetStringType(void);
	Classes::TStrings* __fastcall GetStringValues(void);
	void __fastcall SetStringValues(Classes::TStrings* Value);
	
public:
	__fastcall virtual TMySQLStringField(Classes::TComponent* AOwner);
	__fastcall virtual ~TMySQLStringField(void);
	/* virtual class method */ virtual void __fastcall CheckTypeSize(TMetaClass* vmt, int Value);
	bool __fastcall StrInValue(const AnsiString Value);
	
__published:
	__property TMySQLStringTypes StringType = {read=GetStringType, write=FStringType, nodefault};
	__property Classes::TStrings* StringValues = {read=GetStringValues, write=SetStringValues};
};


class DELPHICLASS TMySQLBlobStream;
class PASCALIMPLEMENTATION TMySQLBlobStream : public Classes::TStream 
{
	typedef Classes::TStream inherited;
	
private:
	Db::TBlobField* FField;
	TMySQLDatasetBase* FDataSet;
	char *FBuffer;
	Db::TBlobStreamMode FMode;
	bool FOpened;
	bool FModified;
	int FPosition;
	bool FCached;
	int __fastcall GetBlobSize(void);
	AnsiString __fastcall GetBlobFromRecord(Db::TField* Field);
	
public:
	__fastcall TMySQLBlobStream(Db::TBlobField* Field, Db::TBlobStreamMode Mode);
	__fastcall virtual ~TMySQLBlobStream(void);
	virtual int __fastcall Read(void *Buffer, int Count);
	virtual int __fastcall Write(const void *Buffer, int Count);
	virtual int __fastcall Seek(int Offset, Word Origin)/* overload */;
	void __fastcall Truncate(void);
	
/* Hoisted overloads: */
	
public:
	inline __int64 __fastcall  Seek(const __int64 Offset, Classes::TSeekOrigin Origin){ return TStream::Seek(Offset, Origin); }
	
};


#pragma option push -b-
enum MySQLDataset__5 { loFirst, loNext, loPrior, loLast, loTextSearch, loMatchAll };
#pragma option pop

typedef Set<MySQLDataset__5, loFirst, loMatchAll>  TMySQLLocateOptions;

#pragma option push -b-
enum TMySQLResultOptions { rtLocal, rtIncremental, rtUnidirectional };
#pragma option pop

#pragma option push -b-
enum MySQLDataset__6 { doShareConnection, doTransactions, doRecursiveUpdates, doCachedUpdates, doThreadedUpdate, doAutoCreate, doCreateTemp, doDropIfExists, doFieldsAsString, doRetrieveFieldValues, doRetrieveIndexDefs, doMacrosEnabled, doMacroCheck, do2KStrToMemo, doSmallMemoToStr, doEnumToBool, doTinyIntToBool, doSetToWord, doEditCalcFields, doUseCursor, doSingleSQL };
#pragma option pop

typedef Set<MySQLDataset__6, doShareConnection, doSingleSQL>  TMySQLDatasetOptions;

class PASCALIMPLEMENTATION TMySQLDatasetBase : public Db::TDataSet 
{
	typedef Db::TDataSet inherited;
	
private:
	void *FConnection;
	void *FResult;
	Classes::TStrings* FMasterFields;
	Db::TMasterDataLink* FMasterLink;
	bool FInTransaction;
	bool FResultChanged;
	bool FResultComplete;
	bool FReadOnly;
	Classes::TStringList* FDBInfo;
	Classes::TStringList* FTableInfo;
	Classes::TStringList* FFieldInfo;
	Classes::TList* FRecInfo;
	int FRawBufSize;
	int FRecBufSize;
	int FRecInfoOfs;
	int FMemoToStrLimit;
	Mysqlserver::TMySQLServer* FServer;
	AnsiString FDatabaseName;
	AnsiString FTableName;
	AnsiString FResultSQL;
	AnsiString FRealSQL;
	Classes::TStrings* FSQL;
	Classes::TStrings* FSQLUpdate;
	Classes::TStrings* FSQLInsert;
	Classes::TStrings* FSQLDelete;
	Classes::TStrings* FSQLBatch;
	Classes::TStrings* FSQLCached;
	char *FTempRec;
	__int64 FCurRec;
	AnsiString FMacroStringStart;
	AnsiString FMacroStringEnd;
	Db::TParams* FMacros;
	TMySQLMacroEvent FOnMacro;
	TMySQLEvent FOnExecSQL;
	TMySQLFieldValue FOnCustomValue;
	TMySQLFieldValue FOnDefaultValue;
	Classes::TNotifyEvent FOnThreadOpened;
	Classes::TNotifyEvent FOnThreadPosted;
	Db::TDataSetNotifyEvent FOnAfterAdd;
	AnsiString FPrimFields;
	AnsiString FUniqFields;
	AnsiString FMultFields;
	AnsiString FAffectedRows;
	AnsiString FQueryInfo;
	AnsiString FLastInsertID;
	TMySQLResultOptions FResultType;
	Controls::TCursor FCursor;
	TMySQLDatasetOptions FOptions;
	Db::TCheckConstraints* FConstraints;
	Db::TFieldDefs* FCustomFieldDefs;
	Db::TIndexDefs* FIndexDefs;
	void __fastcall ReadAllFieldValues(Classes::TReader* Reader);
	void __fastcall ReadMacrosEnabled(Classes::TReader* Reader);
	void __fastcall SQLChanging(System::TObject* Sender);
	void __fastcall SQLChange(System::TObject* Sender);
	AnsiString __fastcall SQLPopulate(const AnsiString SQL, bool ParseMacro = true, bool PopulateOnly = false, const AnsiString ADB = "", const AnsiString ATable = "");
	void __fastcall ApplyUpdates(void);
	void __fastcall ResyncResult(void);
	void __fastcall TableInfoClear(void);
	void __fastcall FieldInfoClear(void);
	void __fastcall RecInfoClear(void);
	void __fastcall GetNextRow(void);
	void __fastcall InternalOpenResultBlock(void);
	PRecInfo __fastcall GetIndexRecord(int Index);
	bool __fastcall CheckChanged(void);
	void __fastcall MakeChanged(void);
	void __fastcall GetRest(void);
	void __fastcall ClearRest(void);
	TMySQLDatasetOptions __fastcall GetOptions(void);
	void __fastcall SetOptions(const TMySQLDatasetOptions Value);
	void __fastcall ParseMacros(AnsiString SQL, const AnsiString AMacroStart, const AnsiString AMacroEnd, bool DoCreate);
	
protected:
	AnsiString FFieldName;
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	void __fastcall ActivateConnection(void);
	void __fastcall DeactivateConnection(void);
	AnsiString __fastcall GetSelectFields();
	AnsiString __fastcall GetMasterAndFilter();
	void __fastcall MasterChanged(System::TObject* Sender);
	void __fastcall MasterDisabled(System::TObject* Sender);
	void __fastcall SetMacros(Db::TParams* Value);
	Word __fastcall GetMacroCount(void);
	AnsiString __fastcall GetMacroString();
	void __fastcall SetMacroString(AnsiString Value);
	virtual void __fastcall SetFiltered(bool Value);
	virtual void __fastcall SetFilterText(const AnsiString Value);
	void __fastcall InternalOpenResult(void);
	virtual void __fastcall InternalOpen(void);
	virtual void __fastcall InternalRefresh(void);
	virtual void __fastcall InternalEdit(void);
	virtual void __fastcall InternalCancel(void);
	virtual void __fastcall InternalInitFieldDefs(void);
	virtual void __fastcall InternalClose(void);
	virtual bool __fastcall IsCursorOpen(void);
	virtual bool __fastcall GetCanModify(void);
	virtual void __fastcall GetBookmarkData(char * Buffer, void * Data);
	virtual void __fastcall SetBookmarkData(char * Buffer, void * Data);
	virtual Db::TBookmarkFlag __fastcall GetBookmarkFlag(char * Buffer);
	virtual void __fastcall SetBookmarkFlag(char * Buffer, Db::TBookmarkFlag Value);
	virtual void __fastcall InternalSetToRecord(char * Buffer);
	virtual void __fastcall InternalGotoBookmark(void * Bookmark);
	virtual int __fastcall GetRecordCount(void);
	virtual char * __fastcall AllocRecordBuffer(void);
	virtual void __fastcall ClearRecordBuffer(char * &Buffer);
	virtual void __fastcall FreeRecordBuffer(char * &Buffer);
	virtual Db::TGetResult __fastcall GetRecord(char * Buffer, Db::TGetMode GetMode, bool DoCheck);
	virtual Word __fastcall GetRecordSize(void);
	virtual void __fastcall InternalInitRecord(char * Buffer);
	virtual void __fastcall InternalInsert(void);
	void __fastcall StartTransaction(void);
	void __fastcall CommitTransaction(void);
	void __fastcall RollbackTransaction(void);
	virtual void __fastcall InternalAddRecord(void * Buffer, bool Append);
	virtual void __fastcall InternalPost(void);
	virtual void __fastcall InternalDelete(void);
	virtual void __fastcall SetFieldData(Db::TField* Field, void * Buffer)/* overload */;
	virtual void __fastcall InternalFirst(void);
	virtual void __fastcall InternalLast(void);
	virtual int __fastcall GetRecNo(void);
	virtual void __fastcall SetRecNo(int Value);
	virtual void __fastcall InternalHandleException(void);
	void __fastcall SetReadOnly(bool Value);
	bool __fastcall GetParamCheck(void);
	void __fastcall SetParamCheck(bool Value);
	bool __fastcall GetUseCursor(void);
	void __fastcall SetUseCursor(bool Value);
	bool __fastcall GetCachedUpdates(void);
	void __fastcall SetCachedUpdates(bool Value);
	bool __fastcall GetShareConnection(void);
	void __fastcall SetShareConnection(bool Value);
	void __fastcall SetServer(Mysqlserver::TMySQLServer* Value);
	void __fastcall SetDatabaseName(AnsiString Value);
	bool __fastcall GetRawData(void);
	void __fastcall SetRawData(bool Value);
	void __fastcall SetFieldName(AnsiString Value);
	void __fastcall SetSQL(Classes::TStrings* Value);
	void __fastcall SetSQLUpdate(Classes::TStrings* Value);
	void __fastcall SetSQLInsert(Classes::TStrings* Value);
	void __fastcall SetSQLDelete(Classes::TStrings* Value);
	void __fastcall SetSQLBatch(Classes::TStrings* Value);
	void __fastcall SetSQLCached(Classes::TStrings* Value);
	void __fastcall SetResultType(TMySQLResultOptions Value);
	void __fastcall ParseAllSQL(void);
	virtual bool __fastcall GetActiveRecBuf(char * &RecBuf);
	AnsiString __fastcall GetBlobData(Db::TField* Field, char * Buffer);
	void __fastcall SetBlobData(Db::TField* Field, char * Buffer, AnsiString Value);
	virtual void __fastcall CloseBlob(Db::TField* Field);
	virtual void __fastcall ClearCalcFields(char * Buffer);
	virtual bool __fastcall GetIsIndexField(Db::TField* Field);
	virtual TMetaClass* __fastcall GetFieldClass(Db::TFieldType FieldType);
	TMySQLStringTypes __fastcall GetStringType(Db::TField* Sender);
	AnsiString __fastcall GetStringValues(Db::TField* Sender);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -