亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tntdb.pas

?? TNT Components Source
?? PAS
?? 第 1 頁 / 共 3 頁
字號:

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntDB;

{$INCLUDE TntCompilers.inc}

interface

uses
  Classes, DB;

type
{TNT-WARN TDateTimeField}
  TTntDateTimeField = class(TDateTimeField{TNT-ALLOW TDateTimeField})
  protected
    procedure SetAsString(const Value: AnsiString); override;
  end;

{TNT-WARN TDateField}
  TTntDateField = class(TDateField{TNT-ALLOW TDateField})
  protected
    procedure SetAsString(const Value: AnsiString); override;
  end;

{TNT-WARN TTimeField}
  TTntTimeField = class(TTimeField{TNT-ALLOW TTimeField})
  protected
    procedure SetAsString(const Value: AnsiString); override;
  end;

  TFieldGetWideTextEvent = procedure(Sender: TField; var Text: WideString;
    DoDisplayText: Boolean) of object;
  TFieldSetWideTextEvent = procedure(Sender: TField; const Text: WideString) of object;

  IWideStringField = interface
    ['{679C5F1A-4356-4696-A8F3-9C7C6970A9F6}']
    {$IFNDEF COMPILER_10_UP}
    function GetAsWideString: WideString;
    procedure SetAsWideString(const Value: WideString);
    {$ENDIF}
    function GetWideDisplayText: WideString;
    function GetWideEditText: WideString;
    procedure SetWideEditText(const Value: WideString);
    //--
    {$IFNDEF COMPILER_10_UP}
    property AsWideString: WideString read GetAsWideString write SetAsWideString{inherited};
    {$ENDIF}
    property WideDisplayText: WideString read GetWideDisplayText;
    property WideText: WideString read GetWideEditText write SetWideEditText;
  end;

{TNT-WARN TWideStringField}
  TTntWideStringField = class(TWideStringField{TNT-ALLOW TWideStringField}, IWideStringField)
  private
    FOnGetText: TFieldGetWideTextEvent;
    FOnSetText: TFieldSetWideTextEvent;
    procedure SetOnGetText(const Value: TFieldGetWideTextEvent);
    procedure SetOnSetText(const Value: TFieldSetWideTextEvent);
    procedure LegacyGetText(Sender: TField; var AnsiText: AnsiString; DoDisplayText: Boolean);
    procedure LegacySetText(Sender: TField; const AnsiText: AnsiString);
    function GetWideDisplayText: WideString;
    function GetWideEditText: WideString;
    procedure SetWideEditText(const Value: WideString);
  protected
    {$IFNDEF COMPILER_10_UP}
    function GetAsWideString: WideString;
    {$ENDIF}
  public
    property Value: WideString read GetAsWideString write SetAsWideString;
    property DisplayText{TNT-ALLOW DisplayText}: WideString read GetWideDisplayText;
    property Text: WideString read GetWideEditText write SetWideEditText;
    {$IFNDEF COMPILER_10_UP}
    property AsWideString: WideString read GetAsWideString write SetAsWideString;
    {$ENDIF}
    property WideDisplayText: WideString read GetWideDisplayText;
    property WideText: WideString read GetWideEditText write SetWideEditText;
  published
    property OnGetText: TFieldGetWideTextEvent read FOnGetText write SetOnGetText;
    property OnSetText: TFieldSetWideTextEvent read FOnSetText write SetOnSetText;
  end;

  TTntStringFieldEncodingMode = (emNone, emUTF8, emUTF7, emFixedCodePage, emFixedCodePage_Safe);

  //-------------------------------------------------------------------------------------------
  // Comments on TTntStringFieldEncodingMode:
  //
  //  emNone               - Works like TStringField.
  //  emUTF8               - Should work well most databases.
  //  emUTF7               - Almost guaranteed to work with any database. Wasteful in database space.
  //  emFixedCodePage      - Only tested it with Access 97, which doesn't support Unicode.
  //  emFixedCodePage_Safe - Like emFixedCodePage but uses char<=#128.  Wasteful in database space.
  //
  //  Only emUTF8 and emUTF7 fully support Unicode.
  //-------------------------------------------------------------------------------------------

  TTntStringFieldCodePageEnum = (fcpOther,
    fcpThai, fcpJapanese, fcpSimplifiedChinese, fcpTraditionalChinese, fcpKorean,
    fcpCentralEuropean, fcpCyrillic, fcpLatinWestern, fcpGreek, fcpTurkish,
    fcpHebrew, fcpArabic, fcpBaltic, fcpVietnamese);

const
  TntStringFieldCodePageEnumMap: array[TTntStringFieldCodePageEnum] of Word = (0,
    874, 932, 936, 950, 949,
    1250, 1251, 1252, 1253, 1254,
    1255, 1256, 1257, 1258);

type
{TNT-WARN TStringField}
  TTntStringField = class(TStringField{TNT-ALLOW TStringField},IWideStringField)
  private
    FOnGetText: TFieldGetWideTextEvent;
    FOnSetText: TFieldSetWideTextEvent;
    FEncodingMode: TTntStringFieldEncodingMode;
    FFixedCodePage: Word;
    FRawVariantAccess: Boolean;
    procedure SetOnGetText(const Value: TFieldGetWideTextEvent);
    procedure SetOnSetText(const Value: TFieldSetWideTextEvent);
    procedure LegacyGetText(Sender: TField; var AnsiText: AnsiString; DoDisplayText: Boolean);
    procedure LegacySetText(Sender: TField; const AnsiText: AnsiString);
    function GetWideDisplayText: WideString;
    function GetWideEditText: WideString;
    procedure SetWideEditText(const Value: WideString);
    function GetFixedCodePageEnum: TTntStringFieldCodePageEnum;
    procedure SetFixedCodePageEnum(const Value: TTntStringFieldCodePageEnum);
    function IsFixedCodePageStored: Boolean;
  protected
    {$IFDEF COMPILER_10_UP}
    function GetAsWideString: WideString; override;
    procedure SetAsWideString(const Value: WideString); override;
    {$ELSE}
    function GetAsWideString: WideString; virtual;
    procedure SetAsWideString(const Value: WideString); virtual;
    {$ENDIF}
    function GetAsVariant: Variant; override;
    procedure SetVarValue(const Value: Variant); override;
    function GetAsString: string{TNT-ALLOW string}; override;
    procedure SetAsString(const Value: string{TNT-ALLOW string}); override;
  public
    constructor Create(AOwner: TComponent); override;
    property Value: WideString read GetAsWideString write SetAsWideString;
    property DisplayText{TNT-ALLOW DisplayText}: WideString read GetWideDisplayText;
    property Text: WideString read GetWideEditText write SetWideEditText;
    {$IFNDEF COMPILER_10_UP}
    property AsWideString: WideString read GetAsWideString write SetAsWideString;
    {$ENDIF}
    property WideDisplayText: WideString read GetWideDisplayText;
    property WideText: WideString read GetWideEditText write SetWideEditText;
  published
    property EncodingMode: TTntStringFieldEncodingMode read FEncodingMode write FEncodingMode default emUTF8;
    property FixedCodePageEnum: TTntStringFieldCodePageEnum read GetFixedCodePageEnum write SetFixedCodePageEnum stored False;
    property FixedCodePage: Word read FFixedCodePage write FFixedCodePage stored IsFixedCodePageStored;
    property RawVariantAccess: Boolean read FRawVariantAccess write FRawVariantAccess default False;
    property OnGetText: TFieldGetWideTextEvent read FOnGetText write SetOnGetText;
    property OnSetText: TFieldSetWideTextEvent read FOnSetText write SetOnSetText;
  end;

//======================
type
{TNT-WARN TMemoField}
  TTntMemoField = class(TMemoField{TNT-ALLOW TMemoField}, IWideStringField)
  private
    FOnGetText: TFieldGetWideTextEvent;
    FOnSetText: TFieldSetWideTextEvent;
    FEncodingMode: TTntStringFieldEncodingMode;
    FFixedCodePage: Word;
    FRawVariantAccess: Boolean;
    procedure SetOnGetText(const Value: TFieldGetWideTextEvent);
    procedure SetOnSetText(const Value: TFieldSetWideTextEvent);
    procedure LegacyGetText(Sender: TField; var AnsiText: AnsiString; DoDisplayText: Boolean);
    procedure LegacySetText(Sender: TField; const AnsiText: AnsiString);
    function GetWideDisplayText: WideString;
    function GetWideEditText: WideString;
    procedure SetWideEditText(const Value: WideString);
    function GetFixedCodePageEnum: TTntStringFieldCodePageEnum;
    procedure SetFixedCodePageEnum(const Value: TTntStringFieldCodePageEnum);
    function IsFixedCodePageStored: Boolean;
  protected
    {$IFDEF COMPILER_10_UP}
    function GetAsWideString: WideString; override;
    procedure SetAsWideString(const Value: WideString); override;
    {$ELSE}
    function GetAsWideString: WideString; virtual;
    procedure SetAsWideString(const Value: WideString); virtual;
    {$ENDIF}
    function GetAsVariant: Variant; override;
    procedure SetVarValue(const Value: Variant); override;
    function GetAsString: string{TNT-ALLOW string}; override;
    procedure SetAsString(const Value: string{TNT-ALLOW string}); override;
  public
    constructor Create(AOwner: TComponent); override;
    property Value: WideString read GetAsWideString write SetAsWideString;
    property DisplayText{TNT-ALLOW DisplayText}: WideString read GetWideDisplayText;
    property Text: WideString read GetWideEditText write SetWideEditText;
    {$IFNDEF COMPILER_10_UP}
    property AsWideString: WideString read GetAsWideString write SetAsWideString;
    {$ENDIF}
    property WideDisplayText: WideString read GetWideDisplayText;
    property WideText: WideString read GetWideEditText write SetWideEditText;
  published
    property EncodingMode: TTntStringFieldEncodingMode read FEncodingMode write FEncodingMode default emUTF8;
    property FixedCodePageEnum: TTntStringFieldCodePageEnum read GetFixedCodePageEnum write SetFixedCodePageEnum stored False;
    property FixedCodePage: Word read FFixedCodePage write FFixedCodePage stored IsFixedCodePageStored;
    property RawVariantAccess: Boolean read FRawVariantAccess write FRawVariantAccess default False;
    property OnGetText: TFieldGetWideTextEvent read FOnGetText write SetOnGetText;
    property OnSetText: TFieldSetWideTextEvent read FOnSetText write SetOnSetText;
  end;

//======================
function GetTntFieldClass(FieldClass: TFieldClass): TFieldClass;

function GetWideDisplayName(Field: TField): WideString; deprecated; // for Unicode-enabled functionality, use Delphi 2006 or newer
function GetWideDisplayLabel(Field: TField): WideString; deprecated; // for Unicode-enabled functionality, use Delphi 2006 or newer
procedure SetWideDisplayLabel(Field: TField; const Value: WideString); deprecated; // for Unicode-enabled functionality, use Delphi 2006 or newer

{TNT-WARN AsString}
{TNT-WARN DisplayText}

function GetAsWideString(Field: TField): WideString;
procedure SetAsWideString(Field: TField; const Value: WideString);

function GetWideDisplayText(Field: TField): WideString;

function GetWideText(Field: TField): WideString;
procedure SetWideText(Field: TField; const Value: WideString);

procedure RegisterTntFields;

{ TTntWideStringField / TTntStringField common handlers }
procedure TntWideStringField_GetWideText(Field: TField;
  var Text: WideString; DoDisplayText: Boolean);
function TntWideStringField_GetWideDisplayText(Field: TField;
  OnGetText: TFieldGetWideTextEvent): WideString;
function TntWideStringField_GetWideEditText(Field: TField;
  OnGetText: TFieldGetWideTextEvent): WideString;
procedure TntWideStringField_SetWideText(Field: TField;
  const Value: WideString);
procedure TntWideStringField_SetWideEditText(Field: TField;
  OnSetText: TFieldSetWideTextEvent; const Value: WideString);


implementation

uses
  SysUtils, MaskUtils, Variants, Contnrs, TntSystem, TntSysUtils;

function GetTntFieldClass(FieldClass: TFieldClass): TFieldClass;
begin
  if FieldClass = TDateTimeField{TNT-ALLOW TDateTimeField} then
    Result := TTntDateTimeField
  else if FieldClass = TDateField{TNT-ALLOW TDateField} then
    Result := TTntDateField
  else if FieldClass = TTimeField{TNT-ALLOW TTimeField} then
    Result := TTntTimeField
  else if FieldClass = TWideStringField{TNT-ALLOW TWideStringField} then
    Result := TTntWideStringField
  else if FieldClass = TStringField{TNT-ALLOW TStringField} then
    Result := TTntStringField
  else
    Result := FieldClass;
end;

function GetWideDisplayName(Field: TField): WideString;
begin
  Result := Field.DisplayName;
end;

function GetWideDisplayLabel(Field: TField): WideString;
begin
  Result := Field.DisplayLabel;
end;

procedure SetWideDisplayLabel(Field: TField; const Value: WideString);
begin
  Field.DisplayLabel := Value;
end;

function GetAsWideString(Field: TField): WideString;
{$IFDEF COMPILER_10_UP}
begin
  if (Field.ClassType = TMemoField{TNT-ALLOW TMemoField}) then
    Result := VarToWideStr(Field.AsVariant) { works for NexusDB BLOB Wide }
  else
    Result := Field.AsWideString
end;
{$ELSE}
var
  WideField: IWideStringField;
begin
  if Field.GetInterface(IWideStringField, WideField) then
    Result := WideField.AsWideString
  else if (Field is TWideStringField{TNT-ALLOW TWideStringField}) then
  begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在线视频| 欧美一区二区三区不卡| 亚洲一区二区三区国产| 欧美午夜精品一区二区三区| 免费人成黄页网站在线一区二区| 国产日韩欧美高清在线| 欧美性感一类影片在线播放| 久久99热狠狠色一区二区| 国产精品国产三级国产普通话蜜臀| 欧美在线观看视频在线| 国产麻豆精品在线| 国产精品国产精品国产专区不蜜| 91精品一区二区三区在线观看| 丁香婷婷深情五月亚洲| 五月婷婷色综合| 欧美国产在线观看| 久久久久久麻豆| 日韩欧美专区在线| 91蜜桃网址入口| 成人一二三区视频| 狠狠色丁香久久婷婷综合丁香| 丝袜国产日韩另类美女| 亚洲电影在线免费观看| 亚洲一区二区在线视频| 精品国产乱码久久久久久免费| 国产成人aaa| 蜜臀久久99精品久久久久宅男| |精品福利一区二区三区| 26uuu色噜噜精品一区| 欧美精品成人一区二区三区四区| 91网站视频在线观看| kk眼镜猥琐国模调教系列一区二区| 精品一区二区影视| 麻豆高清免费国产一区| 日本视频一区二区| 婷婷一区二区三区| 亚洲第一电影网| 一区二区三区四区乱视频| 自拍偷拍欧美精品| 国产精品久久国产精麻豆99网站| 久久精品一区二区三区不卡 | 91欧美激情一区二区三区成人| 国产麻豆午夜三级精品| 国产盗摄精品一区二区三区在线| 久久国产精品第一页| 久久99精品久久久久久| 成人综合在线观看| 亚洲精品水蜜桃| 国产精品久久久久9999吃药| 国产精品美女视频| 久久精品视频一区二区| 国产精品久久久久三级| 中文字幕一区二区在线播放 | 国产精品一区二区三区网站| 国内精品视频666| 国产在线国偷精品产拍免费yy| 精品一区二区三区在线观看| 狠狠色丁香婷婷综合久久片| 国产不卡高清在线观看视频| av影院午夜一区| 91久久香蕉国产日韩欧美9色| 欧美日韩在线播放一区| 555夜色666亚洲国产免| 2021国产精品久久精品| 国产精品人妖ts系列视频| 日韩毛片视频在线看| 一区二区免费在线播放| 免费欧美日韩国产三级电影| 国产成人自拍在线| 色综合一区二区| 欧美一激情一区二区三区| 精品久久久久久久人人人人传媒| 亚洲国产精品ⅴa在线观看| 自拍偷拍亚洲激情| 免费观看成人av| 成人黄色免费短视频| 欧美日韩一区二区三区高清 | 欧美色图免费看| xf在线a精品一区二区视频网站| 国产精品久久午夜| 亚洲国产人成综合网站| 国产一区二区91| 色国产综合视频| 精品国产一区二区三区不卡 | 日本一区中文字幕| 成人在线一区二区三区| 欧美日韩亚洲综合一区| 精品国产免费一区二区三区四区| 中文乱码免费一区二区| 亚洲宅男天堂在线观看无病毒| 国产精品伦一区二区三级视频| 亚洲一区二区精品久久av| 亚洲电影你懂得| 九九热在线视频观看这里只有精品| 大尺度一区二区| 亚洲午夜精品在线| 高清不卡在线观看| 成人h动漫精品| 91麻豆精品国产91久久久资源速度| 国产欧美日韩精品在线| 日日欢夜夜爽一区| caoporm超碰国产精品| 日韩精品自拍偷拍| 午夜视频在线观看一区二区三区| 国产精品综合在线视频| 3d动漫精品啪啪一区二区竹菊| 欧美国产一区二区| 裸体健美xxxx欧美裸体表演| 91蜜桃网址入口| 日本一二三四高清不卡| 麻豆精品一区二区三区| 欧美天堂一区二区三区| 亚洲欧洲日产国产综合网| 九九九久久久精品| 宅男在线国产精品| 午夜精品福利一区二区蜜股av| 9色porny自拍视频一区二区| 亚洲精品一区二区精华| 日韩精品一级二级| 欧美曰成人黄网| 亚洲人成在线观看一区二区| 国产不卡视频在线播放| www激情久久| 不卡av在线网| 亚洲午夜精品在线| 精品捆绑美女sm三区| 激情综合网最新| 中文字幕国产一区| 97se亚洲国产综合在线| 亚洲国产精品一区二区www | 欧美成人一区二区三区在线观看| 亚洲成人午夜电影| 国产精品麻豆视频| 久久久99精品久久| 欧美日韩中文另类| 成人小视频免费在线观看| 午夜视频一区二区| 国产精品午夜久久| 久久久久亚洲蜜桃| 色悠久久久久综合欧美99| 偷拍自拍另类欧美| 亚洲免费资源在线播放| 精品国精品国产尤物美女| 成人激情黄色小说| 日韩在线观看一区二区| 久久综合一区二区| 777久久久精品| 成人激情动漫在线观看| 国模无码大尺度一区二区三区| 精品国产第一区二区三区观看体验| 高清在线不卡av| 婷婷成人激情在线网| 91精品国产日韩91久久久久久| 国内精品自线一区二区三区视频| 亚洲少妇30p| 欧美一区二区日韩| 欧美精品电影在线播放| 国产黄色91视频| 亚洲人妖av一区二区| 日韩免费福利电影在线观看| 久久久久久久久久久久电影| 久久久久久免费网| 日韩免费看的电影| 亚洲国产经典视频| 久久九九久精品国产免费直播| 亚洲精品在线观看网站| 日本一区二区三区四区在线视频| 日韩一级片网址| 久久综合丝袜日本网| 无吗不卡中文字幕| 亚洲二区视频在线| 丝瓜av网站精品一区二区| 久久精品国产第一区二区三区| 男男成人高潮片免费网站| 亚洲国产成人av网| 欧美中文字幕一区二区三区亚洲| 久久先锋影音av| 91视视频在线观看入口直接观看www | 国产·精品毛片| 亚洲美女视频在线| 日韩免费观看高清完整版 | 日韩女同互慰一区二区| 国产成a人亚洲精品| 亚洲高清免费观看| 亚洲国产成人午夜在线一区| 欧美自拍丝袜亚洲| 国产成人免费在线视频| 日日夜夜免费精品视频| 国产精品乱码人人做人人爱| 欧美撒尿777hd撒尿| 国产福利电影一区二区三区| 午夜不卡在线视频| 中文字幕亚洲不卡| 欧美xfplay| 欧美探花视频资源| 成人黄色免费短视频| 久久不见久久见免费视频7| 一区二区三区欧美久久| 久久精品人人做人人爽人人| 欧美日韩成人综合在线一区二区 |