📄 mysqlcommon.pas
字号:
_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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -