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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mysqlcommon.pas

?? 通過Tmysql來訪問MSQL Server數(shù)據(jù)庫的應(yīng)用案例.
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    _OnComplete,
    _OnError,
    OnComplete,
    OnError
  );
end;

function TmySQLClientUtility.GetServerInfo : string;
begin
  Result:=mysql_get_server_info(FTaskHandler.Session);
end;

function TmySQLClientUtility.GetClientInfo : string;
begin
  Result:=mysql_get_client_info;
end;

function TmySQLClientUtility.GetHostInfo : string;
begin
  Result:=mysql_get_host_info(FTaskHandler.Session);
end;

function TmySQLClientUtility.GetProtoInfo : byte;
begin
  Result:=mysql_get_proto_info(FTaskHandler.Session);
end;

function TmySQLClientUtility.GetErrorMsg : string;
begin
  Result:=FTaskHandler.Session.net.last_error;
end;

function TmySQLClientUtility.GetStat : pchar;
begin
  Result:=mysql_stat(FTaskHandler.Session);
end;

function TmySQLClientUtility.GetListResult : TStringList;
begin
  Result:=nil;

  if FCurrentTaskData=nil then exit;

  Result:=FCurrentTaskData.F_ListData;
end;

function TmySQLClientUtility.GetIntegerResult : integer;
begin
  Result:=-1;

  if FCurrentTaskData=nil then exit;

  Result:=FCurrentTaskData.F_IntegerData;
end;

//----------------------------------------------------------------------------
//----------------------------------------------------------------------------

constructor TmySQLClientTaskData.Create;
begin
  F_query       :=StrAlloc(MAX_SQL_LENGTH);

  FTaskType     :=task_mysql_connect;
  FPrepared     :=FALSE;

  F_host  :=StrAlloc(MAX_LENGTH_HOST+1);
  F_user  :=StrAlloc(MAX_LENGTH_USER+1);
  F_passwd:=StrAlloc(MAX_LENGTH_PASSWD+1);
  F_db    :=StrAlloc(MAX_LENGTH_DB+1);

  F_port        :=0;
  F_unix_socket :='';
  F_clientflag  :=0;
  F_presults    :=nil;
  F_Session     :=nil;
  F_ret_code    :=0;
  F_keyfield    :=0;
  F_executetype :=Execute_Stored;
  F_table       :='';
  F_condition   :=StrAlloc(MAX_SQL_LENGTH);

  F_ListData       :=TStringList.Create;
  F_IntegerData    :=-1;

  FThreadOnComplete:=nil;
  FThreadOnError   :=nil;

  FTaskOnComplete  :=nil;
  FTaskOnError     :=nil;
end;

destructor TmySQLClientTaskData.Destroy;
begin
  if F_presults<>nil then begin
    mysql_free_result(F_presults);
  end;

  F_ListData.Free;

  StrDispose(F_host);
  StrDispose(F_user);
  StrDispose(F_passwd);
  StrDispose(F_db);

  StrDispose(F_query);
  StrDispose(F_condition);

  inherited;
end;

constructor TmySQLClientThread.Create(CreateSuspended : boolean);
begin
  inherited;

  FTaskList:=TList.Create;
  FThreaded:=TRUE;
  FOnStatus:=nil;
end;

destructor TmySQLClientThread.Destroy;
begin
  FTaskList.Free;
end;

function TmySQLClientThread.GetTaskCount : integer;
begin
  Result:=FTaskList.Count;
end;

procedure TmySQLClientThread.Prepare_mysql_real_connect(
  const host, user, passwd, db: pchar;
  port: Cardinal; unix_socket: PChar; clientflag: Cardinal;
  const TaskName : string;
  OnComplete : TmySQLClientThread_OnComplete;
  OnError    : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName        :=TaskName;

    FPrepared    :=TRUE;
    FTaskType    :=task_mysql_real_connect;

    StrCopy(F_Host  ,host);
    StrCopy(F_User  ,user);
    StrCopy(F_Passwd,passwd);
    StrCopy(F_db    ,db);

    F_port       :=port;
    F_unix_socket:=unix_socket;
    F_clientflag :=clientflag;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Insert(0,T);
end;

procedure TmySQLClientThread.Prepare_mysql_close(
  const TaskName : string;
  OnComplete : TmySQLClientThread_OnComplete;
  OnError    : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName        :=TaskName;

    FPrepared    :=TRUE;
    FTaskType    :=task_mysql_close;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_query(
  TaskType : TmySQLClientTaskType;
  _query: pchar;

  const TaskName : string;

  OnComplete : TmySQLClientThread_OnComplete;
  OnError    : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    StrCopy(F_query,_query);

    FPrepared   :=TRUE;
    FTaskType   :=TaskType;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_db(
  TaskType : TmySQLClientTaskType;
  db: pchar;

  const TaskName : string;

  OnComplete : TmySQLClientThread_OnComplete;
  OnError    : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    StrCopy(F_db    ,db);

    FPrepared   :=TRUE;
    FTaskType   :=TaskType;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_list(
  const TaskType : TmySQLClientTaskType;

  Wild : pchar;

  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    F_Wild      :=Wild;

    FPrepared   :=TRUE;
    FTaskType   :=TaskType;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_list_fields(
  TableName : pchar;
  Wild : pchar;

  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    F_Table     :=TableName;
    F_Wild      :=Wild;

    FPrepared   :=TRUE;
    FTaskType   :=task_mysql_list_fields;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_list_processes(
  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    FPrepared   :=TRUE;
    FTaskType   :=task_mysql_list_processes;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_ping_shutdown(
  const TaskType : TmySQLClientTaskType;
  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    FPrepared   :=TRUE;
    FTaskType   :=TaskType;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_kill(
  const pid : integer;
  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    F_pid       :=pid;

    FPrepared   :=TRUE;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_options(
  const opt: mysql_option; arg: pchar;
  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    F_Options   :=Opt;

    FPrepared   :=TRUE;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.Prepare_mysql_refresh(
  const RefreshOptions: cardinal;
  const TaskName : string;

  OnComplete     : TmySQLClientThread_OnComplete;
  OnError        : TmySQLClientThread_OnError;

  OnTaskComplete : TmySQLClientTask_OnComplete;
  OnTaskError    : TmySQLClientTask_OnError
);
var
  T : TmySQLClientTaskData;
begin
  T:=TmySQLClientTaskData.Create;

  with T do begin
    FName       :=TaskName;

    F_Refresh_Options:=RefreshOptions;

    FPrepared   :=TRUE;

    FThreadOnComplete:=OnComplete;
    FThreadOnError   :=OnError;

    FTaskOnComplete:=OnTaskComplete;
    FTaskOnError   :=OnTaskError;
  end;

  FTaskList.Add(T);
end;

procedure TmySQLClientThread.PostComplete(T : TmySQLClientTaskData);
var
  sTemp : string;
  iCount : integer;
begin
  sTemp:=''; iCount:=-1;

  if FThreaded then begin
    if Assigned(T.FThreadOnComplete) or
       Assigned(FOnFinished) or
       Assigned(FOnStatus) then
      PostMessage(FHandlerWndHandle,
        WM_CHAINTASKHANDLER_COMPLETE,
        LongWord(T),
        0
      );
  end else begin
    if Assigned(FOnStatus) then begin
      sTemp:=T.FName;
      iCount:=FTaskList.Cou

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频黄| 91精品国产综合久久香蕉的特点 | 久久草av在线| 中文字幕在线一区免费| 精品乱码亚洲一区二区不卡| 色域天天综合网| 国产风韵犹存在线视精品| 视频在线在亚洲| 亚洲色图清纯唯美| 国产午夜精品一区二区三区四区| 欧美剧情电影在线观看完整版免费励志电影| 国产精品乡下勾搭老头1| 日日摸夜夜添夜夜添国产精品| 亚洲视频小说图片| 久久免费偷拍视频| 日韩美女一区二区三区| 欧亚洲嫩模精品一区三区| 波多野结衣在线一区| 国产最新精品免费| 久久99热国产| 狠狠色丁香婷综合久久| 日韩福利视频导航| 婷婷国产v国产偷v亚洲高清| 亚洲精品一二三| 亚洲乱码中文字幕综合| 亚洲色图欧美激情| 综合亚洲深深色噜噜狠狠网站| 欧美国产日韩一二三区| 国产三级精品在线| 久久久久国产精品厨房| 久久久电影一区二区三区| 精品国产3级a| 国产视频一区在线观看| 国产亚洲精品福利| 国产午夜精品久久| 国产精品天干天干在线综合| 国产精品无码永久免费888| 国产午夜精品理论片a级大结局| 国产亚洲欧洲一区高清在线观看| 国产午夜亚洲精品羞羞网站| 久久婷婷久久一区二区三区| 日韩精品一区二区三区视频在线观看| 日韩精品一区二区三区视频播放 | 亚洲综合视频网| 亚洲国产一区视频| 亚洲成av人片| 日本不卡的三区四区五区| 麻豆91在线观看| 黑人巨大精品欧美黑白配亚洲| 国产曰批免费观看久久久| 国产高清在线观看免费不卡| 高清国产午夜精品久久久久久| 北条麻妃国产九九精品视频| 91麻豆国产自产在线观看| 欧美视频精品在线| 日韩欧美激情一区| 国产女主播一区| 亚洲乱码国产乱码精品精的特点| 亚洲成人综合在线| 久久99精品国产.久久久久久 | 91福利小视频| 欧美日韩精品一区视频| 欧美一区二区三区免费视频| 久久久久久久久一| 亚洲美女屁股眼交| 麻豆国产欧美日韩综合精品二区| 国产超碰在线一区| 欧美午夜不卡在线观看免费| 精品国产亚洲一区二区三区在线观看| 欧美国产日韩亚洲一区| 亚洲成人资源网| 九九**精品视频免费播放| 高清av一区二区| 欧美日韩中文字幕一区二区| 久久久久久毛片| 玉足女爽爽91| 久久99国产精品尤物| 99视频精品免费视频| 欧美日韩亚洲国产综合| 2020国产成人综合网| 亚洲欧美偷拍另类a∨色屁股| 麻豆精品国产91久久久久久| 97精品视频在线观看自产线路二| 日韩午夜激情免费电影| 亚洲欧洲成人精品av97| 免费久久精品视频| 91麻豆精品在线观看| 久久丝袜美腿综合| 亚洲第一主播视频| 成人aa视频在线观看| 欧美成人精精品一区二区频| 伊人婷婷欧美激情| 图片区小说区区亚洲影院| 蜜臀91精品一区二区三区| 波多野结衣精品在线| 欧美zozozo| 亚洲午夜久久久久中文字幕久| 国产乱码一区二区三区| 91精品久久久久久久99蜜桃| 亚洲精选视频免费看| 风间由美一区二区av101 | 亚洲三级视频在线观看| 男女视频一区二区| 欧美色大人视频| 自拍偷拍国产亚洲| 岛国一区二区在线观看| 精品精品欲导航| 亚洲成av人片| 在线观看欧美日本| 亚洲三级在线免费观看| 成人免费毛片a| 久久综合色8888| 麻豆高清免费国产一区| 制服丝袜中文字幕一区| 亚洲国产日韩综合久久精品| 99久久精品国产观看| 国产精品理论在线观看| 高清国产一区二区| 国产欧美日韩久久| 国产乱色国产精品免费视频| 精品不卡在线视频| 美女视频一区在线观看| 在线不卡a资源高清| 亚洲国产wwwccc36天堂| 欧美性感一类影片在线播放| 一区二区欧美在线观看| 欧美亚洲另类激情小说| 亚洲欧美色图小说| 91亚洲永久精品| 亚洲精品国产精品乱码不99| 日本高清免费不卡视频| 一区二区三区在线播| 欧美日韩在线一区二区| 五月综合激情婷婷六月色窝| 欧美日本视频在线| 日本免费在线视频不卡一不卡二| 91精品国产欧美一区二区成人| 日韩av一级片| 精品欧美一区二区久久 | 青青草97国产精品免费观看无弹窗版| 欧美日韩成人综合在线一区二区| 午夜精品久久久久久久99水蜜桃| 欧美日韩精品欧美日韩精品一| 三级影片在线观看欧美日韩一区二区 | 国产精品亚洲午夜一区二区三区| 国产亚洲精品中文字幕| 成人综合婷婷国产精品久久| 国产精品久久久久精k8| 在线免费视频一区二区| 午夜精品免费在线| 精品国产乱码久久久久久牛牛| 国产精品自在在线| 国产精品乱人伦| 在线观看日韩国产| 美脚の诱脚舐め脚责91| 国产欧美一区二区三区在线看蜜臀 | 精品久久免费看| 成人美女视频在线观看| 亚洲欧美另类小说视频| 欧美少妇bbb| 久久精品噜噜噜成人av农村| 欧美激情中文字幕| 欧美天堂亚洲电影院在线播放| 香港成人在线视频| 2021中文字幕一区亚洲| 99re在线精品| 蜜臀a∨国产成人精品| 亚洲国产精品国自产拍av| 欧美唯美清纯偷拍| 国产一区二区免费视频| 亚洲色图制服诱惑| 欧美v国产在线一区二区三区| 丰满少妇久久久久久久| 亚洲福利视频一区| 国产蜜臀97一区二区三区| 91成人免费网站| 国产在线国偷精品产拍免费yy| 亚洲色欲色欲www在线观看| 日韩一区二区三区免费看| 国产成人一区在线| 亚洲国产一区二区在线播放| 精品国产乱码久久久久久久久 | 日韩一级二级三级精品视频| 国产在线视频精品一区| 一区二区三区欧美日| 久久久久久久久久久久久女国产乱 | 蜜臀av一区二区在线观看| 国产精品色婷婷久久58| 678五月天丁香亚洲综合网| 成人国产在线观看| 免费看日韩a级影片| 亚洲另类春色国产| 国产日产欧美一区| 欧美精品v日韩精品v韩国精品v| 大白屁股一区二区视频| 蜜桃精品在线观看| 亚洲精品自拍动漫在线| 欧美国产成人精品| 精品国产乱子伦一区| 国产精品久久久久久亚洲毛片 |