mySQLDBCtrlAPI 1.2510.25__tar.gz → 1.2510.27__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mySQLDBCtrlAPI might be problematic. Click here for more details.
- mysqldbctrlapi-1.2510.27/MANIFEST.in +2 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/PKG-INFO +2 -1
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/pyproject.toml +2 -1
- mysqldbctrlapi-1.2510.27/src/mySQLDBCtrlAPI/mySQLDBCtrl.cp310-win_amd64.pyd +0 -0
- mysqldbctrlapi-1.2510.27/src/mySQLDBCtrlAPI/mySQLDBCtrl.pyi +57 -0
- mysqldbctrlapi-1.2510.27/src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLDBCtrl.pyi +68 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/PKG-INFO +2 -1
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/SOURCES.txt +5 -2
- mysqldbctrlapi-1.2510.25/src/mySQLDBCtrlAPI/mySQLDBCtrl.py +0 -455
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/LICENSE +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/README.md +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/setup.cfg +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI/__init__.py +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/dependency_links.txt +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/requires.txt +0 -0
- {mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mySQLDBCtrlAPI
|
|
3
|
-
Version: 1.2510.
|
|
3
|
+
Version: 1.2510.27
|
|
4
4
|
Summary: mySQLDBCtrlAPI Python package
|
|
5
5
|
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
6
|
License: Copyright (c) 2025 James Lin
|
|
@@ -25,6 +25,7 @@ License: Copyright (c) 2025 James Lin
|
|
|
25
25
|
In no event shall the author be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.
|
|
26
26
|
|
|
27
27
|
Project-URL: Homepage, https://mis.gotech.biz
|
|
28
|
+
Requires-Python: >=3.10
|
|
28
29
|
Description-Content-Type: text/markdown
|
|
29
30
|
License-File: LICENSE
|
|
30
31
|
Requires-Dist: pymysql
|
|
@@ -4,7 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mySQLDBCtrlAPI"
|
|
7
|
-
version = "1.2510.
|
|
7
|
+
version = "1.2510.27"
|
|
8
|
+
requires-python = ">=3.10"
|
|
8
9
|
description = "mySQLDBCtrlAPI Python package"
|
|
9
10
|
authors = [
|
|
10
11
|
{ name="James Lin", email="tylin123@ms27.hinet.net" }
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# This file was generated by Nuitka
|
|
2
|
+
|
|
3
|
+
# Stubs included by default
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from typing import Any
|
|
6
|
+
from typing_extensions import Self
|
|
7
|
+
import os
|
|
8
|
+
import pymysql
|
|
9
|
+
|
|
10
|
+
class ENUM_DB_CHARSET:
|
|
11
|
+
def __init__(self: Self) -> None: ...
|
|
12
|
+
|
|
13
|
+
class STRU_mySQLDBInfo:
|
|
14
|
+
def __init__(self: Self) -> None: ...
|
|
15
|
+
|
|
16
|
+
class CLASS_mySQLDBCtrl:
|
|
17
|
+
def __init__(self: Self) -> None: ...
|
|
18
|
+
def CUF_SET_Charset(self: Self, PmE_DB_Charset: Any) -> Any: ...
|
|
19
|
+
def CUF_OpenConnection_DBCS(self: Self, Pms_DB_HostIP: Any, Pmi_DB_Port: Any, Pms_DB_Name: Any, Pms_User: Any, Pms_Password: Any, PmE_DB_CHARSET: Any) -> Any: ...
|
|
20
|
+
def CUF_OpenConnection(self: Self, Pms_DB_HostIP: Any, Pmi_DB_Port: Any, Pms_DB_Name: Any, Pms_User: Any, Pms_Password: Any) -> Any: ...
|
|
21
|
+
def CUF_DB_OpenConn(self: Self, Pstru_mySQLDBInfo: Any) -> Any: ...
|
|
22
|
+
def CUF_DB_OpenSQL(self: Self, Pobj_Connection: Any, Pms_SQL: Any) -> Any: ...
|
|
23
|
+
def CUF_DB_OpenSQL_utf8(self: Self, Pobj_Connection: Any, Pms_SQL: Any) -> Any: ...
|
|
24
|
+
def CUF_DB_FETCH(self: Self, Pobj_Query: Any) -> Any: ...
|
|
25
|
+
def CUF_DB_Next(self: Self, Pobj_Query: Any) -> Any: ...
|
|
26
|
+
def CUF_Next(self: Self, Pobj_Query: Any) -> Any: ...
|
|
27
|
+
def CUF_DB_ExecSQL(self: Self, Pobj_Connection: Any, Pms_SQL: Any) -> Any: ...
|
|
28
|
+
def CUF_DB_ExecSQL_utf8(self: Self, Pobj_Connection: Any, Pms_SQL: Any) -> Any: ...
|
|
29
|
+
def CUF_DB_RecordCount(self: Self, Pobj_Query: Any) -> Any: ...
|
|
30
|
+
def CUF_DB_RECCOUNT(self: Self, Pobj_Query: Any) -> Any: ...
|
|
31
|
+
def CUF_DB_Eof(self: Self, Pobj_Query: Any) -> Any: ...
|
|
32
|
+
def CUF_Eof(self: Self, Pobj_Query: Any) -> Any: ...
|
|
33
|
+
def CUF_str_utf8(self: Self, Pobj_DataSet: Any) -> Any: ...
|
|
34
|
+
def CUF_utf8(self: Self, Pobj_DataSet: Any) -> Any: ...
|
|
35
|
+
def CUF_str_big5(self: Self, Pobj_DataSet: Any) -> Any: ...
|
|
36
|
+
def CUF_big5(self: Self, Pobj_DataSet: Any) -> Any: ...
|
|
37
|
+
def CUF_GetBlobField(self: Self, Pobj_Query: Any, Pms_BlobFieldName: Any, Pms_FileName: Any) -> Any: ...
|
|
38
|
+
def CUF_GET_Blob(self: Self, Pobj_Query: Any, Pms_BlobFieldName: Any, Pms_FileName: Any) -> Any: ...
|
|
39
|
+
def CUF_SetBlobField(self: Self, Pobj_Query: Any, Pms_TableName: Any, Pms_QUERY: Any, Pms_BlobFieldName: Any, Pms_FileName: Any) -> Any: ...
|
|
40
|
+
def CUF_SET_BLOB(self: Self, Pobj_Query: Any, Pms_TableName: Any, Pms_QUERY: Any, Pms_BlobFieldName: Any, Pms_FileName: Any) -> Any: ...
|
|
41
|
+
def CUF_GetServerDateTime(self: Self, Pms_SEPCHAR_DATE: Any, Pms_SEPCHAR_TIME: Any, Pms_SEPERATOR: Any) -> Any: ...
|
|
42
|
+
def CUF_GetServerDateTime1(self: Self, PmB_DELIMITER: Any) -> Any: ...
|
|
43
|
+
def CUF_GetServerDateTime2(self: Self) -> Any: ...
|
|
44
|
+
def CUF_GetServerDate(self: Self, Pms_DELIMITER: Any) -> Any: ...
|
|
45
|
+
def CUF_GetServerTime(self: Self, Pms_DELIMITER: Any) -> Any: ...
|
|
46
|
+
def CUF_AddTime(self: Self, Pms_DateTime: Any, Pmi_TimeSecond: Any) -> Any: ...
|
|
47
|
+
def CUF_AddTime_Current(self: Self, Pmi_TimeSecond: Any) -> Any: ...
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
__name__ = ...
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# Modules used internally, to allow implicit dependencies to be seen:
|
|
55
|
+
import os
|
|
56
|
+
import pymysql
|
|
57
|
+
import ntpath
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
|
|
3
|
+
class ENUM_DB_CHARSET:
|
|
4
|
+
cE_DBCS_ascii: Incomplete
|
|
5
|
+
cE_DBCS_big5: Incomplete
|
|
6
|
+
cE_DBCS_binary: Incomplete
|
|
7
|
+
cE_DBCS_cp1250: Incomplete
|
|
8
|
+
cE_DBCS_gb2312: Incomplete
|
|
9
|
+
cE_DBCS_gbk: Incomplete
|
|
10
|
+
cE_DBCS_latin1: Incomplete
|
|
11
|
+
cE_DBCS_latin2: Incomplete
|
|
12
|
+
cE_DBCS_latin5: Incomplete
|
|
13
|
+
cE_DBCS_latin7: Incomplete
|
|
14
|
+
cE_DBCS_utf16: Incomplete
|
|
15
|
+
cE_DBCS_utf16le: Incomplete
|
|
16
|
+
cE_DBCS_utf32: Incomplete
|
|
17
|
+
cE_DBCS_utf8mb3: Incomplete
|
|
18
|
+
cE_DBCS_utf8mb4: int
|
|
19
|
+
def __init__(self) -> None: ...
|
|
20
|
+
|
|
21
|
+
class STRU_mySQLDBInfo:
|
|
22
|
+
ms_DB_HostIP: str
|
|
23
|
+
mi_DB_Port: int
|
|
24
|
+
ms_DB_Name: str
|
|
25
|
+
ms_User: str
|
|
26
|
+
ms_Password: str
|
|
27
|
+
def __init__(self) -> None: ...
|
|
28
|
+
|
|
29
|
+
class CLASS_mySQLDBCtrl:
|
|
30
|
+
CUms_DB_HostIP: str
|
|
31
|
+
CUmi_DB_Port: int
|
|
32
|
+
CUms_DB_Name: str
|
|
33
|
+
CUms_User: str
|
|
34
|
+
CUms_Password: str
|
|
35
|
+
CVmi_qryRECCNT: int
|
|
36
|
+
CVmsa_DBCS: Incomplete
|
|
37
|
+
def __init__(self) -> None: ...
|
|
38
|
+
def CUF_SET_Charset(self, PmE_DB_Charset) -> None: ...
|
|
39
|
+
CUobj_Conn: Incomplete
|
|
40
|
+
def CUF_OpenConnection_DBCS(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password, PmE_DB_CHARSET): ...
|
|
41
|
+
def CUF_OpenConnection(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, Pms_User, Pms_Password): ...
|
|
42
|
+
def CUF_DB_OpenConn(self, Pstru_mySQLDBInfo): ...
|
|
43
|
+
def CUF_DB_OpenSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
44
|
+
def CUF_DB_OpenSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
45
|
+
def CUF_DB_FETCH(self, Pobj_Query): ...
|
|
46
|
+
def CUF_DB_Next(self, Pobj_Query): ...
|
|
47
|
+
def CUF_Next(self, Pobj_Query): ...
|
|
48
|
+
def CUF_DB_ExecSQL(self, Pobj_Connection, Pms_SQL): ...
|
|
49
|
+
def CUF_DB_ExecSQL_utf8(self, Pobj_Connection, Pms_SQL): ...
|
|
50
|
+
def CUF_DB_RecordCount(self, Pobj_Query): ...
|
|
51
|
+
def CUF_DB_RECCOUNT(self, Pobj_Query): ...
|
|
52
|
+
def CUF_DB_Eof(self, Pobj_Query): ...
|
|
53
|
+
def CUF_Eof(self, Pobj_Query): ...
|
|
54
|
+
def CUF_str_utf8(self, Pobj_DataSet): ...
|
|
55
|
+
def CUF_utf8(self, Pobj_DataSet): ...
|
|
56
|
+
def CUF_str_big5(self, Pobj_DataSet): ...
|
|
57
|
+
def CUF_big5(self, Pobj_DataSet): ...
|
|
58
|
+
def CUF_GetBlobField(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
59
|
+
def CUF_GET_Blob(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
60
|
+
def CUF_SetBlobField(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
61
|
+
def CUF_SET_BLOB(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName) -> None: ...
|
|
62
|
+
def CUF_GetServerDateTime(self, Pms_SEPCHAR_DATE, Pms_SEPCHAR_TIME, Pms_SEPERATOR): ...
|
|
63
|
+
def CUF_GetServerDateTime1(self, PmB_DELIMITER): ...
|
|
64
|
+
def CUF_GetServerDateTime2(self): ...
|
|
65
|
+
def CUF_GetServerDate(self, Pms_DELIMITER): ...
|
|
66
|
+
def CUF_GetServerTime(self, Pms_DELIMITER): ...
|
|
67
|
+
def CUF_AddTime(self, Pms_DateTime, Pmi_TimeSecond): ...
|
|
68
|
+
def CUF_AddTime_Current(self, Pmi_TimeSecond): ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mySQLDBCtrlAPI
|
|
3
|
-
Version: 1.2510.
|
|
3
|
+
Version: 1.2510.27
|
|
4
4
|
Summary: mySQLDBCtrlAPI Python package
|
|
5
5
|
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
6
|
License: Copyright (c) 2025 James Lin
|
|
@@ -25,6 +25,7 @@ License: Copyright (c) 2025 James Lin
|
|
|
25
25
|
In no event shall the author be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.
|
|
26
26
|
|
|
27
27
|
Project-URL: Homepage, https://mis.gotech.biz
|
|
28
|
+
Requires-Python: >=3.10
|
|
28
29
|
Description-Content-Type: text/markdown
|
|
29
30
|
License-File: LICENSE
|
|
30
31
|
Requires-Dist: pymysql
|
{mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/SOURCES.txt
RENAMED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
2
3
|
README.md
|
|
3
4
|
pyproject.toml
|
|
4
5
|
setup.cfg
|
|
5
6
|
src/mySQLDBCtrlAPI/__init__.py
|
|
6
|
-
src/mySQLDBCtrlAPI/mySQLDBCtrl.
|
|
7
|
+
src/mySQLDBCtrlAPI/mySQLDBCtrl.cp310-win_amd64.pyd
|
|
8
|
+
src/mySQLDBCtrlAPI/mySQLDBCtrl.pyi
|
|
7
9
|
src/mySQLDBCtrlAPI.egg-info/PKG-INFO
|
|
8
10
|
src/mySQLDBCtrlAPI.egg-info/SOURCES.txt
|
|
9
11
|
src/mySQLDBCtrlAPI.egg-info/dependency_links.txt
|
|
10
12
|
src/mySQLDBCtrlAPI.egg-info/requires.txt
|
|
11
|
-
src/mySQLDBCtrlAPI.egg-info/top_level.txt
|
|
13
|
+
src/mySQLDBCtrlAPI.egg-info/top_level.txt
|
|
14
|
+
src/mySQLDBCtrlAPI/out/mySQLDBCtrlAPI/mySQLDBCtrl.pyi
|
|
@@ -1,455 +0,0 @@
|
|
|
1
|
-
#UTF-8 #-*- coding:
|
|
2
|
-
# ----------------------------------------------------------------------------
|
|
3
|
-
# MySQL 資料庫類別: CLASS_mySQLDBCtrl
|
|
4
|
-
# [使用範例]:
|
|
5
|
-
# ms_SQL = "SELECT * FROM ztbxtalk_reglist";
|
|
6
|
-
# self.CVobj_MyQuery = self.CVobj_mySQLDBCtrl.CUF_DB_OpenSQL(
|
|
7
|
-
# self.CVobj_Conn, ms_SQL);
|
|
8
|
-
# mi_RECCNT = self.CVobj_mySQLDBCtrl.CUF_DB_RecordCount(self.CVobj_MyQuery);
|
|
9
|
-
# print("Record count = "+ str(mi_RECCNT));
|
|
10
|
-
# while(not self.CVobj_mySQLDBCtrl.CUF_Eof(self.CVobj_MyQuery)):
|
|
11
|
-
# obj_DataSet = self.CVobj_mySQLDBCtrl.CUF_DB_FETCH(self.CVobj_MyQuery)
|
|
12
|
-
# print(obj_DataSet["SADDR"], " ", obj_DataSet["LOGIN_TIME"],
|
|
13
|
-
# obj_DataSet["IP_ADDR"], " ", obj_DataSet["APP_NAME"]);
|
|
14
|
-
# ----------------------------------------------------------------------------
|
|
15
|
-
|
|
16
|
-
import os
|
|
17
|
-
import pymysql as Gobj_pymysql
|
|
18
|
-
|
|
19
|
-
# --------------------------------------------------------------------------------
|
|
20
|
-
# 資料庫字元集
|
|
21
|
-
class ENUM_DB_CHARSET:
|
|
22
|
-
def __init__(self):
|
|
23
|
-
self.cE_DBCS_ascii = 1, # ascii US ASCII
|
|
24
|
-
self.cE_DBCS_big5 = 2, # big5 Big5 Traditional Chinese
|
|
25
|
-
self.cE_DBCS_binary = 3, # binary Binary pseudo charset
|
|
26
|
-
self.cE_DBCS_cp1250 = 4, # cp1250 Windows Central European
|
|
27
|
-
self.cE_DBCS_gb2312 = 5, # gb2312 GB2312 Simplified Chinese
|
|
28
|
-
self.cE_DBCS_gbk = 6, # gbk GBK Simplified Chinese
|
|
29
|
-
self.cE_DBCS_latin1 = 7, # latin1 cp1252 West European
|
|
30
|
-
self.cE_DBCS_latin2 = 8, # latin2 ISO 8859-2 Central European
|
|
31
|
-
self.cE_DBCS_latin5 = 9, # latin5 ISO 8859-9 Turkish
|
|
32
|
-
self.cE_DBCS_latin7 = 10, # latin7 ISO 8859-13 Baltic
|
|
33
|
-
self.cE_DBCS_utf16 = 11, # utf16 UTF-16 Unicode
|
|
34
|
-
self.cE_DBCS_utf16le = 12, # utf16le UTF-16LE Unicode
|
|
35
|
-
# --------------------------------------------------------------------------------
|
|
36
|
-
self.cE_DBCS_utf32 = 13, # utf32 UTF-32 Unicode
|
|
37
|
-
# --------------------------------------------------------------------------------
|
|
38
|
-
self.cE_DBCS_utf8mb3 = 14, # utf8mb3 UTF-8 Unicode
|
|
39
|
-
self.cE_DBCS_utf8mb4 = 15 # utf8mb4 UTF-8 Unicode
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
# ================================================================================
|
|
43
|
-
# define mySQLDBCtrl API structure
|
|
44
|
-
# ================================================================================
|
|
45
|
-
class STRU_mySQLDBInfo:
|
|
46
|
-
def __init__(self):
|
|
47
|
-
self.ms_DB_HostIP = "127.0.0.1";
|
|
48
|
-
self.mi_DB_Port = 3306;
|
|
49
|
-
self.ms_DB_Name = "";
|
|
50
|
-
self.ms_User = "";
|
|
51
|
-
self.ms_Password = "";
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
# ================================================================================
|
|
55
|
-
# CLASS_mySQLDBCtrl
|
|
56
|
-
# ================================================================================
|
|
57
|
-
class CLASS_mySQLDBCtrl:
|
|
58
|
-
def __init__(self):
|
|
59
|
-
self.CUms_DB_HostIP = '127.0.0.1';
|
|
60
|
-
self.CUmi_DB_Port = 3306;
|
|
61
|
-
self.CUms_DB_Name = '';
|
|
62
|
-
self.CUms_User = '';
|
|
63
|
-
self.CUms_Password = '';
|
|
64
|
-
# ------------------------------------------------------------
|
|
65
|
-
self.CVmi_qryRECCNT = 0;
|
|
66
|
-
# ------------------------------------------------------------
|
|
67
|
-
self.CVmsa_DBCS = ["ascii", "big5", "binary", "cp1250", \
|
|
68
|
-
"gb2312", "gbk", "latin1", "latin2", \
|
|
69
|
-
"latin5", "latin7", "utf16", "utf16le",\
|
|
70
|
-
"utf32", "utf8mb3", "utf8mb4"];
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
# ----------------------------------------------------------------------
|
|
74
|
-
# 功能: 設定資料庫 Charset
|
|
75
|
-
# 傳入: PmE_DB_Charset --> ENUM_DB_CHARSET
|
|
76
|
-
# 傳回: obj_Query
|
|
77
|
-
# ----------------------------------------------------------------------
|
|
78
|
-
def CUF_SET_Charset(self, PmE_DB_Charset):
|
|
79
|
-
if(self.CUobj_Conn != None and len(PmE_DB_Charset) > 0):
|
|
80
|
-
ms_SQL = "SET NAMES " + self.CVmsa_DBCS[PmE_DB_Charset[0]];
|
|
81
|
-
# ----------------------------------------
|
|
82
|
-
self.CUF_DB_ExecSQL(self.CUobj_Conn, ms_SQL);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# ----------------------------------------------------------------------
|
|
86
|
-
# 功能: 開啟 MySQL 資料庫
|
|
87
|
-
# 傳入:
|
|
88
|
-
# 傳回: obj_Query
|
|
89
|
-
# ----------------------------------------------------------------------
|
|
90
|
-
def CUF_OpenConnection_DBCS(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, \
|
|
91
|
-
Pms_User, Pms_Password,
|
|
92
|
-
PmE_DB_CHARSET):
|
|
93
|
-
self.CUms_DB_HostIP = Pms_DB_HostIP;
|
|
94
|
-
self.CUmi_DB_Port = Pmi_DB_Port;
|
|
95
|
-
self.CUms_DB_Name = Pms_DB_Name;
|
|
96
|
-
self.CUms_User = Pms_User;
|
|
97
|
-
self.CUms_Password = Pms_Password;
|
|
98
|
-
# ----------------------------------------------------------------
|
|
99
|
-
try:
|
|
100
|
-
self.CUobj_Conn = Gobj_pymysql.connect(
|
|
101
|
-
host = self.CUms_DB_HostIP,
|
|
102
|
-
port = self.CUmi_DB_Port,
|
|
103
|
-
user = self.CUms_User,
|
|
104
|
-
password = self.CUms_Password,
|
|
105
|
-
db = self.CUms_DB_Name,
|
|
106
|
-
cursorclass= Gobj_pymysql.cursors.DictCursor);
|
|
107
|
-
except:
|
|
108
|
-
self.CUobj_Conn = None;
|
|
109
|
-
#------------------------------------------------------------
|
|
110
|
-
# 設定資料庫字元集
|
|
111
|
-
self.CUF_SET_Charset(PmE_DB_CHARSET)
|
|
112
|
-
#------------------------------------------------------------
|
|
113
|
-
return(self.CUobj_Conn);
|
|
114
|
-
# ======================================================================
|
|
115
|
-
def CUF_OpenConnection(self, Pms_DB_HostIP, Pmi_DB_Port, Pms_DB_Name, \
|
|
116
|
-
Pms_User, Pms_Password):
|
|
117
|
-
mE_DB_Charset = ENUM_DB_CHARSET();
|
|
118
|
-
# ------------------------------------------------------------
|
|
119
|
-
return(self.CUF_OpenConnection_DBCS(Pms_DB_HostIP, Pmi_DB_Port, \
|
|
120
|
-
Pms_DB_Name, Pms_User, \
|
|
121
|
-
Pms_Password, \
|
|
122
|
-
mE_DB_Charset.cE_DBCS_utf32));
|
|
123
|
-
# ======================================================================
|
|
124
|
-
def CUF_DB_OpenConn(self, Pstru_mySQLDBInfo):
|
|
125
|
-
self.CUobj_Conn.commit();
|
|
126
|
-
return(self.CUF_OpenConnection(Pstru_mySQLDBInfo.ms_DB_HostIP,
|
|
127
|
-
Pstru_mySQLDBInfo.mi_DB_Port,
|
|
128
|
-
Pstru_mySQLDBInfo.ms_DB_Name,
|
|
129
|
-
Pstru_mySQLDBInfo.ms_User,
|
|
130
|
-
Pstru_mySQLDBInfo.ms_Password));
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
# ----------------------------------------------------------------------
|
|
134
|
-
# 功能: 開啟 Pms_SQL 資料錄
|
|
135
|
-
# 傳入:
|
|
136
|
-
# 傳回: obj_Query
|
|
137
|
-
# ----------------------------------------------------------------------
|
|
138
|
-
def CUF_DB_OpenSQL(self, Pobj_Connection, Pms_SQL):
|
|
139
|
-
obj_DataSet: Any;
|
|
140
|
-
|
|
141
|
-
Pobj_Connection.commit();
|
|
142
|
-
# ------------------------------------------------------------
|
|
143
|
-
obj_Query = Pobj_Connection.cursor();
|
|
144
|
-
# ------------------------------------------------------------
|
|
145
|
-
obj_Query.execute(self.CUF_str_big5(Pms_SQL));
|
|
146
|
-
# ------------------------------------------------------------
|
|
147
|
-
Pobj_Connection.commit();
|
|
148
|
-
# ------------------------------------------------------------
|
|
149
|
-
self.CVmi_qryRECCNT = self.CUF_DB_RecordCount(obj_Query);
|
|
150
|
-
# ------------------------------------------------------------
|
|
151
|
-
if(self.CVmi_qryRECCNT > 0):
|
|
152
|
-
obj_DataSet = self.CUF_DB_Next(obj_Query);
|
|
153
|
-
# ------------------------------------------------------------
|
|
154
|
-
return(obj_Query, obj_DataSet);
|
|
155
|
-
# ----------------------------------------------------------------------
|
|
156
|
-
def CUF_DB_OpenSQL_utf8(self, Pobj_Connection, Pms_SQL):
|
|
157
|
-
obj_DataSet: Any;
|
|
158
|
-
|
|
159
|
-
Pobj_Connection.commit();
|
|
160
|
-
# ------------------------------------------------------------
|
|
161
|
-
obj_Query = Pobj_Connection.cursor();
|
|
162
|
-
# ------------------------------------------------------------
|
|
163
|
-
obj_Query.execute(Pms_SQL);
|
|
164
|
-
# ------------------------------------------------------------
|
|
165
|
-
Pobj_Connection.commit();
|
|
166
|
-
# ------------------------------------------------------------
|
|
167
|
-
self.CVmi_qryRECCNT = self.CUF_DB_RecordCount(obj_Query);
|
|
168
|
-
# ------------------------------------------------------------
|
|
169
|
-
if(self.CVmi_qryRECCNT > 0):
|
|
170
|
-
obj_DataSet = self.CUF_DB_Next(obj_Query);
|
|
171
|
-
# ------------------------------------------------------------
|
|
172
|
-
return(obj_Query, obj_DataSet);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
# ----------------------------------------------------------------------
|
|
176
|
-
# 功能: 擷取資料錄 (下一筆)
|
|
177
|
-
# 傳入:
|
|
178
|
-
# 傳回: obj_Field
|
|
179
|
-
# ----------------------------------------------------------------------
|
|
180
|
-
def CUF_DB_FETCH(self, Pobj_Query):
|
|
181
|
-
self.CVmi_qryRECCNT = self.CVmi_qryRECCNT - 1;
|
|
182
|
-
# ------------------------------------------------------------
|
|
183
|
-
return(Pobj_Query.fetchone());
|
|
184
|
-
# ----------------------------------------------------------------------
|
|
185
|
-
def CUF_DB_Next(self, Pobj_Query):
|
|
186
|
-
return(self.CUF_DB_FETCH(Pobj_Query));
|
|
187
|
-
# ----------------------------------------------------------------------
|
|
188
|
-
def CUF_Next(self, Pobj_Query):
|
|
189
|
-
return(self.CUF_DB_FETCH(Pobj_Query));
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
# ----------------------------------------------------------------------
|
|
193
|
-
# 功能: 執行 Open SQL 命令
|
|
194
|
-
# 傳入:
|
|
195
|
-
# 傳回: obj_Field
|
|
196
|
-
# ----------------------------------------------------------------------
|
|
197
|
-
def CUF_DB_ExecSQL(self, Pobj_Connection, Pms_SQL):
|
|
198
|
-
obj_Query = Pobj_Connection.cursor();
|
|
199
|
-
# ------------------------------------------------------------
|
|
200
|
-
obj_Query.execute(self.CUF_str_big5(Pms_SQL));
|
|
201
|
-
# ------------------------------------------------------------
|
|
202
|
-
Pobj_Connection.commit();
|
|
203
|
-
# ------------------------------------------------------------
|
|
204
|
-
return(obj_Query);
|
|
205
|
-
# ----------------------------------------------------------------------
|
|
206
|
-
def CUF_DB_ExecSQL_utf8(self, Pobj_Connection, Pms_SQL):
|
|
207
|
-
obj_Query = Pobj_Connection.cursor();
|
|
208
|
-
# ------------------------------------------------------------
|
|
209
|
-
obj_Query.execute(Pms_SQL);
|
|
210
|
-
# ------------------------------------------------------------
|
|
211
|
-
Pobj_Connection.commit();
|
|
212
|
-
# ------------------------------------------------------------
|
|
213
|
-
return(obj_Query);
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
# ----------------------------------------------------------------------
|
|
217
|
-
# 功能: 取得資料錄筆數
|
|
218
|
-
# 傳入:
|
|
219
|
-
# 傳回: obj_Field
|
|
220
|
-
# ----------------------------------------------------------------------
|
|
221
|
-
def CUF_DB_RecordCount(self, Pobj_Query):
|
|
222
|
-
return(Pobj_Query.rowcount);
|
|
223
|
-
# ----------------------------------------------------------------------
|
|
224
|
-
def CUF_DB_RECCOUNT(self, Pobj_Query):
|
|
225
|
-
return(self.CUF_DB_RecordCount(Pobj_Query));
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
# ----------------------------------------------------------------------
|
|
229
|
-
# 功能: 執行 Open SQL 命令
|
|
230
|
-
# 傳入:
|
|
231
|
-
# 傳回: true: Eof
|
|
232
|
-
# ----------------------------------------------------------------------
|
|
233
|
-
def CUF_DB_Eof(self, Pobj_Query):
|
|
234
|
-
mB_RetVal = True;
|
|
235
|
-
# ------------------------------------------------
|
|
236
|
-
if(self.CVmi_qryRECCNT > 0):
|
|
237
|
-
mB_RetVal = False;
|
|
238
|
-
# ------------------------------------------------
|
|
239
|
-
return(mB_RetVal);
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
# ----------------------------------------------------------------------
|
|
243
|
-
# 功能: 執行 Open SQL 命令
|
|
244
|
-
# 傳入:
|
|
245
|
-
# 傳回: true: Eof
|
|
246
|
-
# Robj_DataSet: 資料集
|
|
247
|
-
# ----------------------------------------------------------------------
|
|
248
|
-
def CUF_Eof(self, Pobj_Query):
|
|
249
|
-
return(self.CUF_DB_Eof(Pobj_Query));
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
# ----------------------------------------------------------------------
|
|
253
|
-
# 功能: 轉換字串編碼 (big5 -> utf-8)
|
|
254
|
-
# 傳入:
|
|
255
|
-
# 傳回: true: Eof
|
|
256
|
-
# Robj_DataSet: 資料集
|
|
257
|
-
# ----------------------------------------------------------------------
|
|
258
|
-
def CUF_str_utf8(self, Pobj_DataSet):
|
|
259
|
-
return(str(Pobj_DataSet).encode("latin1").decode("big5"));
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
# ----------------------------------------------------------------------
|
|
263
|
-
# 功能: 轉換字串編碼 (utf-8 -> big5)
|
|
264
|
-
# 傳入:
|
|
265
|
-
# 傳回: true: Eof
|
|
266
|
-
# Robj_DataSet: 資料集
|
|
267
|
-
# ----------------------------------------------------------------------
|
|
268
|
-
def CUF_str_big5(self, Pobj_DataSet):
|
|
269
|
-
return(str(Pobj_DataSet).encode("big5").decode("latin1"));
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
# ----------------------------------------------------------------------
|
|
273
|
-
# 功能: 讀取 BLOB Field
|
|
274
|
-
# 傳入:
|
|
275
|
-
# 傳回: true: Eof
|
|
276
|
-
# Pobj_Query: 資料集
|
|
277
|
-
# ----------------------------------------------------------------------
|
|
278
|
-
def CUF_GetBlobField(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName):
|
|
279
|
-
if(Pobj_Query):
|
|
280
|
-
obj_DataSet = Pobj_Query.fetchone();
|
|
281
|
-
if(obj_DataSet is None):
|
|
282
|
-
return;
|
|
283
|
-
# --------------------------------------------------
|
|
284
|
-
obj_FileData = obj_DataSet[Pms_BlobFieldName];
|
|
285
|
-
# --------------------------------------------------
|
|
286
|
-
with open(Pms_FileName, "wb") as obj_FP:
|
|
287
|
-
obj_FP.write(obj_FileData);
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
# ----------------------------------------------------------------------
|
|
291
|
-
# 功能: 寫入 BLOB Field
|
|
292
|
-
# 傳入:
|
|
293
|
-
# 傳回: true: Eof
|
|
294
|
-
# Pobj_Query: 資料集
|
|
295
|
-
# ----------------------------------------------------------------------
|
|
296
|
-
def CUF_SetBlobField(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName):
|
|
297
|
-
ms_SQL :str;
|
|
298
|
-
mi_FileSize:int;
|
|
299
|
-
|
|
300
|
-
mi_FileSize = os.path.getsize(Pms_FileName);
|
|
301
|
-
if(mi_FileSize > 4200000000):
|
|
302
|
-
print("File over size!!");
|
|
303
|
-
return;
|
|
304
|
-
# --------------------------------------------------
|
|
305
|
-
with open(Pms_FileName, "rb") as obj_FP:
|
|
306
|
-
obj_FileData = obj_FP.read();
|
|
307
|
-
# --------------------------------------------------
|
|
308
|
-
ms_SQL = f"UPDATE {Pms_TableName} SET {Pms_BlobFieldName}=%s WHERE {Pms_QUERY}";
|
|
309
|
-
Pobj_Query.execute(ms_SQL, (obj_FileData,));
|
|
310
|
-
# --------------------------------------------------
|
|
311
|
-
self.CUobj_Conn.commit();
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
# --------------------------------------------------------------------------------
|
|
315
|
-
# FUNC: 取得伺服主機系統日期時間
|
|
316
|
-
# PIN :
|
|
317
|
-
# POUT:
|
|
318
|
-
# --------------------------------------------------------------------------------
|
|
319
|
-
def CUF_GetServerDateTime(self, Pms_SEPCHAR_DATE, Pms_SEPCHAR_TIME,
|
|
320
|
-
Pms_SEPERATOR):
|
|
321
|
-
ms_DateTime = "";
|
|
322
|
-
# ------------------------------------------------------------
|
|
323
|
-
ms_FMT_DATE = "%Y" + Pms_SEPCHAR_DATE + "%m" + Pms_SEPCHAR_DATE + "%d";
|
|
324
|
-
ms_FMT_TIME = "%H" + Pms_SEPCHAR_TIME + "%i" + Pms_SEPCHAR_TIME + "%s";
|
|
325
|
-
# ------------------------------------------------------------
|
|
326
|
-
ms_SQL = "SELECT CONCAT(DATE_FORMAT(CURRENT_DATE(), '"+ \
|
|
327
|
-
ms_FMT_DATE + "'), '"+ Pms_SEPERATOR + \
|
|
328
|
-
"',TIME_FORMAT(CURRENT_TIME(), '" + \
|
|
329
|
-
ms_FMT_TIME + "')) AS _DATETIME";
|
|
330
|
-
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
331
|
-
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
332
|
-
# ------------------------------------------------------------
|
|
333
|
-
ms_DateTime = obj_DataSet["_DATETIME"];
|
|
334
|
-
# ------------------------------------------------------------
|
|
335
|
-
return(ms_DateTime);
|
|
336
|
-
# --------------------------------------------------------------------------------
|
|
337
|
-
def CUF_GetServerDateTime1(self, PmB_DELIMITER):
|
|
338
|
-
if(PmB_DELIMITER == True):
|
|
339
|
-
ms_RetVal = self.CUF_GetServerDateTime("/", ":", " ");
|
|
340
|
-
else:
|
|
341
|
-
ms_RetVal = self.CUF_GetServerDateTime("", "", "");
|
|
342
|
-
# ------------------------------------------------------------
|
|
343
|
-
return(ms_RetVal);
|
|
344
|
-
# --------------------------------------------------------------------------------
|
|
345
|
-
def CUF_GetServerDateTime2(self):
|
|
346
|
-
return(self.CUF_GetServerDateTime("", "", ""));
|
|
347
|
-
# --------------------------------------------------------------------------------
|
|
348
|
-
def CUF_GetServerDate(self, Pms_DELIMITER):
|
|
349
|
-
ms_DateTime = "";
|
|
350
|
-
# ------------------------------------------------------------
|
|
351
|
-
ms_SQL = "SELECT DATE_FORMAT(CURRENT_DATE(), " \
|
|
352
|
-
"'%Y" + Pms_DELIMITER + "%m" + Pms_DELIMITER + \
|
|
353
|
-
"%d') AS _DATE";
|
|
354
|
-
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn , ms_SQL);
|
|
355
|
-
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
356
|
-
# ------------------------------------------------------------
|
|
357
|
-
ms_DateTime = obj_DataSet["_DATE"];
|
|
358
|
-
# ------------------------------------------------------------
|
|
359
|
-
return(ms_DateTime);
|
|
360
|
-
# --------------------------------------------------------------------------------
|
|
361
|
-
def CUF_GetServerTime(self, Pms_DELIMITER):
|
|
362
|
-
ms_DateTime = "";
|
|
363
|
-
# ------------------------------------------------------------
|
|
364
|
-
ms_SQL = "SELECT TIME_FORMAT(CURRENT_TIME(), " \
|
|
365
|
-
"'%H" + Pms_DELIMITER + "%i" + Pms_DELIMITER + \
|
|
366
|
-
"%s') AS _TIME";
|
|
367
|
-
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
368
|
-
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
369
|
-
# ------------------------------------------------------------
|
|
370
|
-
ms_DateTime = obj_DataSet["_TIME"];
|
|
371
|
-
# ------------------------------------------------------------
|
|
372
|
-
return(ms_DateTime);
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
# --------------------------------------------------------------------------------
|
|
376
|
-
# FUNC: 日期時間計算 (相加/減 Pmi_TimeSecond)
|
|
377
|
-
# PIN : Pms_DateTime 可配合使用 CUF_GetServerDateTime(...) 取得系統日期時間
|
|
378
|
-
# Pmi_TImeSecond -59 ~ +59 秒
|
|
379
|
-
# POUT:
|
|
380
|
-
# --------------------------------------------------------------------------------
|
|
381
|
-
def CUF_AddTime(self, Pms_DateTime, Pmi_TimeSecond):
|
|
382
|
-
ms_SQL = "SELECT ADDTIME('"+ Pms_DateTime + "', "+\
|
|
383
|
-
str(Pmi_TimeSecond)+ ") AS _TIMESTR ";
|
|
384
|
-
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
385
|
-
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
386
|
-
ms_TimeSTR = obj_DataSet["_TIMESTR"];
|
|
387
|
-
# ------------------------------------------------------------
|
|
388
|
-
return(ms_TimeSTR);
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
# --------------------------------------------------------------------------------
|
|
392
|
-
# FUNC: 將目前時間 加/減 Pmi_TimeSecond 秒
|
|
393
|
-
# PIN :
|
|
394
|
-
# POUT:
|
|
395
|
-
# --------------------------------------------------------------------------------
|
|
396
|
-
def CUF_AddTime_Current(self, Pmi_TimeSecond):
|
|
397
|
-
ms_CurrTime = self.CUF_GetServerDateTime1(True);
|
|
398
|
-
ms_CurrTime = self.CUF_AddTime(ms_CurrTime, Pmi_TimeSecond);
|
|
399
|
-
# ------------------------------------------------------------
|
|
400
|
-
return(ms_CurrTime);
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
# ---------------------------------------------------------------------------
|
|
404
|
-
# 使用範例
|
|
405
|
-
# ---------------------------------------------------------------------------
|
|
406
|
-
if(__name__ == '__main__'):
|
|
407
|
-
Gobj_mySQLDBCtrl = CLASS_mySQLDBCtrl();
|
|
408
|
-
# ------------------------------------------------------------
|
|
409
|
-
Gobj_Conn = Gobj_mySQLDBCtrl.CUF_OpenConnection(Pms_DB_HostIP= "mis.XXX.biz",
|
|
410
|
-
Pmi_DB_Port = 1234,
|
|
411
|
-
Pms_DB_Name = "goxxxh_mis",
|
|
412
|
-
Pms_User = "xxxx",
|
|
413
|
-
Pms_Password = "****");
|
|
414
|
-
# ------------------------------------------------------------
|
|
415
|
-
# [範例1]
|
|
416
|
-
# ms_SQL = 'SELECT * From tbemployee';
|
|
417
|
-
# obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
418
|
-
# print(Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query)); # NEXT
|
|
419
|
-
# print(Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query)); # NEXT
|
|
420
|
-
# [範例2]
|
|
421
|
-
# ms_SQL = "SELECT * From tbdepartment order by DEPNO";
|
|
422
|
-
# obj_Query = self.CVobj_mySQLDBCtrl.CUF_DB_OpenSQL(self.CVobj_Conn, ms_SQL);
|
|
423
|
-
#
|
|
424
|
-
ms_SQL = """
|
|
425
|
-
SELECT tbdepartment.*, tbemployee.*
|
|
426
|
-
From tbemployee
|
|
427
|
-
INNER JOIN tbdepartment ON (
|
|
428
|
-
tbemployee.ZONE_ID = tbdepartment.ZONE_ID AND
|
|
429
|
-
tbemployee.DEPNO = tbdepartment.DEPNO)
|
|
430
|
-
WHERE EMPID >= 10 AND EMPID <= 30
|
|
431
|
-
ORDER BY EMPID
|
|
432
|
-
""";
|
|
433
|
-
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
434
|
-
mi_RECCNT = Gobj_mySQLDBCtrl.CUF_DB_RecordCount(obj_Query);
|
|
435
|
-
print("Record count = "+ str(mi_RECCNT));
|
|
436
|
-
|
|
437
|
-
for mi_c in range(1, 10):
|
|
438
|
-
obj_DataSet = Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query);
|
|
439
|
-
print(obj_DataSet["DEPNO"], " ", obj_DataSet["DEPNAME"],
|
|
440
|
-
obj_DataSet["EMPID"], " ", obj_DataSet["EMPNAME"]);
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
ms_SQL = "SELECT * FROM _def_fileservicemedia_d "\
|
|
444
|
-
" WHERE FolderType=1 AND MEDIAID=1 AND BlockID=1 ";
|
|
445
|
-
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
446
|
-
Gobj_mySQLDBCtrl.CUF_SetBlobField(obj_Query, "_def_fileservicemedia_d",
|
|
447
|
-
"FolderType=1 AND MEDIAID=1 AND BlockID=1 ",
|
|
448
|
-
"Media_Block",
|
|
449
|
-
"C:\\TEMP\\baselib.zip")
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
ms_SQL = "SELECT * FROM _def_fileservicemedia_d "\
|
|
453
|
-
" WHERE FolderType=1 AND MEDIAID=1 AND BlockID=1 ";
|
|
454
|
-
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
455
|
-
Gobj_mySQLDBCtrl.CUF_GetBlobField(obj_Query, "Media_Block", "C:\\temp\\PPPKKK.zip");
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/requires.txt
RENAMED
|
File without changes
|
{mysqldbctrlapi-1.2510.25 → mysqldbctrlapi-1.2510.27}/src/mySQLDBCtrlAPI.egg-info/top_level.txt
RENAMED
|
File without changes
|