mySQLDBCtrlAPI 0.1.0__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-0.1.0/PKG-INFO +8 -0
- mysqldbctrlapi-0.1.0/README.md +0 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI/__init__.py +0 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI/mySQLDBCtrl.py +397 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI.egg-info/PKG-INFO +8 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI.egg-info/SOURCES.txt +10 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI.egg-info/dependency_links.txt +1 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI.egg-info/requires.txt +1 -0
- mysqldbctrlapi-0.1.0/mySQLDBCtrlAPI.egg-info/top_level.txt +1 -0
- mysqldbctrlapi-0.1.0/pyproject.toml +19 -0
- mysqldbctrlapi-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mySQLDBCtrlAPI
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: mySQLDBCtrlAPI Python package
|
|
5
|
+
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
|
+
Project-URL: Homepage, https://mis.gotech.biz
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: pymysql
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,397 @@
|
|
|
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
|
+
Pobj_Connection.commit();
|
|
140
|
+
# ------------------------------------------------------------
|
|
141
|
+
obj_Query = Pobj_Connection.cursor();
|
|
142
|
+
# ------------------------------------------------------------
|
|
143
|
+
obj_Query.execute(Pms_SQL);
|
|
144
|
+
# ------------------------------------------------------------
|
|
145
|
+
Pobj_Connection.commit();
|
|
146
|
+
# ------------------------------------------------------------
|
|
147
|
+
self.CVmi_qryRECCNT = self.CUF_DB_RecordCount(obj_Query);
|
|
148
|
+
# ------------------------------------------------------------
|
|
149
|
+
return(obj_Query);
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# ----------------------------------------------------------------------
|
|
153
|
+
# 功能: 擷取資料錄
|
|
154
|
+
# 傳入:
|
|
155
|
+
# 傳回: obj_Field
|
|
156
|
+
# ----------------------------------------------------------------------
|
|
157
|
+
def CUF_DB_FETCH(self, Pobj_Query):
|
|
158
|
+
self.CVmi_qryRECCNT = self.CVmi_qryRECCNT - 1;
|
|
159
|
+
# ------------------------------------------------------------
|
|
160
|
+
return(Pobj_Query.fetchone());
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# ----------------------------------------------------------------------
|
|
164
|
+
# 功能: 執行 Open SQL 命令
|
|
165
|
+
# 傳入:
|
|
166
|
+
# 傳回: obj_Field
|
|
167
|
+
# ----------------------------------------------------------------------
|
|
168
|
+
def CUF_DB_ExecSQL(self, Pobj_Connection, Pms_SQL):
|
|
169
|
+
obj_Query = Pobj_Connection.cursor();
|
|
170
|
+
# ------------------------------------------------------------
|
|
171
|
+
obj_Query.execute(Pms_SQL);
|
|
172
|
+
# ------------------------------------------------------------
|
|
173
|
+
Pobj_Connection.commit();
|
|
174
|
+
# ------------------------------------------------------------
|
|
175
|
+
return(obj_Query);
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
# ----------------------------------------------------------------------
|
|
179
|
+
# 功能: 取得資料錄筆數
|
|
180
|
+
# 傳入:
|
|
181
|
+
# 傳回: obj_Field
|
|
182
|
+
# ----------------------------------------------------------------------
|
|
183
|
+
def CUF_DB_RecordCount(self, Pobj_Query):
|
|
184
|
+
return(Pobj_Query.rowcount);
|
|
185
|
+
# ----------------------------------------------------------------------
|
|
186
|
+
def CUF_DB_RECCOUNT(self, Pobj_Query):
|
|
187
|
+
return(self.CUF_DB_RecordCount(Pobj_Query));
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
# ----------------------------------------------------------------------
|
|
191
|
+
# 功能: 執行 Open SQL 命令
|
|
192
|
+
# 傳入:
|
|
193
|
+
# 傳回: true: Eof
|
|
194
|
+
# ----------------------------------------------------------------------
|
|
195
|
+
def CUF_DB_Eof(self, Pobj_Query):
|
|
196
|
+
mB_RetVal = True;
|
|
197
|
+
# ------------------------------------------------
|
|
198
|
+
if(self.CVmi_qryRECCNT > 0):
|
|
199
|
+
mB_RetVal = False;
|
|
200
|
+
# ------------------------------------------------
|
|
201
|
+
return(mB_RetVal);
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
# ----------------------------------------------------------------------
|
|
205
|
+
# 功能: 執行 Open SQL 命令
|
|
206
|
+
# 傳入:
|
|
207
|
+
# 傳回: true: Eof
|
|
208
|
+
# Robj_DataSet: 資料集
|
|
209
|
+
# ----------------------------------------------------------------------
|
|
210
|
+
def CUF_Eof(self, Pobj_Query):
|
|
211
|
+
return(self.CUF_DB_Eof(Pobj_Query));
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
# ----------------------------------------------------------------------
|
|
215
|
+
# 功能: 讀取 BLOB Field
|
|
216
|
+
# 傳入:
|
|
217
|
+
# 傳回: true: Eof
|
|
218
|
+
# Pobj_Query: 資料集
|
|
219
|
+
# ----------------------------------------------------------------------
|
|
220
|
+
def CUF_GetBlobField(self, Pobj_Query, Pms_BlobFieldName, Pms_FileName):
|
|
221
|
+
if(Pobj_Query):
|
|
222
|
+
obj_DataSet = Pobj_Query.fetchone();
|
|
223
|
+
if(obj_DataSet is None):
|
|
224
|
+
return;
|
|
225
|
+
# --------------------------------------------------
|
|
226
|
+
obj_FileData = obj_DataSet[Pms_BlobFieldName];
|
|
227
|
+
# --------------------------------------------------
|
|
228
|
+
with open(Pms_FileName, "wb") as obj_FP:
|
|
229
|
+
obj_FP.write(obj_FileData);
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
# ----------------------------------------------------------------------
|
|
233
|
+
# 功能: 寫入 BLOB Field
|
|
234
|
+
# 傳入:
|
|
235
|
+
# 傳回: true: Eof
|
|
236
|
+
# Pobj_Query: 資料集
|
|
237
|
+
# ----------------------------------------------------------------------
|
|
238
|
+
def CUF_SetBlobField(self, Pobj_Query, Pms_TableName, Pms_QUERY, Pms_BlobFieldName, Pms_FileName):
|
|
239
|
+
ms_SQL :str;
|
|
240
|
+
mi_FileSize:int;
|
|
241
|
+
|
|
242
|
+
mi_FileSize = os.path.getsize(Pms_FileName);
|
|
243
|
+
if(mi_FileSize > 4200000000):
|
|
244
|
+
print("File over size!!");
|
|
245
|
+
return;
|
|
246
|
+
# --------------------------------------------------
|
|
247
|
+
with open(Pms_FileName, "rb") as obj_FP:
|
|
248
|
+
obj_FileData = obj_FP.read();
|
|
249
|
+
# --------------------------------------------------
|
|
250
|
+
ms_SQL = f"UPDATE {Pms_TableName} SET {Pms_BlobFieldName}=%s WHERE {Pms_QUERY}";
|
|
251
|
+
Pobj_Query.execute(ms_SQL, (obj_FileData,));
|
|
252
|
+
# --------------------------------------------------
|
|
253
|
+
self.CUobj_Conn.commit();
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
# --------------------------------------------------------------------------------
|
|
257
|
+
# FUNC: 取得伺服主機系統日期時間
|
|
258
|
+
# PIN :
|
|
259
|
+
# POUT:
|
|
260
|
+
# --------------------------------------------------------------------------------
|
|
261
|
+
def CUF_GetServerDateTime(self, Pms_SEPCHAR_DATE, Pms_SEPCHAR_TIME,
|
|
262
|
+
Pms_SEPERATOR):
|
|
263
|
+
ms_DateTime = "";
|
|
264
|
+
# ------------------------------------------------------------
|
|
265
|
+
ms_FMT_DATE = "%Y" + Pms_SEPCHAR_DATE + "%m" + Pms_SEPCHAR_DATE + "%d";
|
|
266
|
+
ms_FMT_TIME = "%H" + Pms_SEPCHAR_TIME + "%i" + Pms_SEPCHAR_TIME + "%s";
|
|
267
|
+
# ------------------------------------------------------------
|
|
268
|
+
ms_SQL = "SELECT CONCAT(DATE_FORMAT(CURRENT_DATE(), '"+ \
|
|
269
|
+
ms_FMT_DATE + "'), '"+ Pms_SEPERATOR + \
|
|
270
|
+
"',TIME_FORMAT(CURRENT_TIME(), '" + \
|
|
271
|
+
ms_FMT_TIME + "')) AS _DATETIME";
|
|
272
|
+
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
273
|
+
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
274
|
+
# ------------------------------------------------------------
|
|
275
|
+
ms_DateTime = obj_DataSet["_DATETIME"];
|
|
276
|
+
# ------------------------------------------------------------
|
|
277
|
+
return(ms_DateTime);
|
|
278
|
+
# --------------------------------------------------------------------------------
|
|
279
|
+
def CUF_GetServerDateTime1(self, PmB_DELIMITER):
|
|
280
|
+
if(PmB_DELIMITER == True):
|
|
281
|
+
ms_RetVal = self.CUF_GetServerDateTime("/", ":", " ");
|
|
282
|
+
else:
|
|
283
|
+
ms_RetVal = self.CUF_GetServerDateTime("", "", "");
|
|
284
|
+
# ------------------------------------------------------------
|
|
285
|
+
return(ms_RetVal);
|
|
286
|
+
# --------------------------------------------------------------------------------
|
|
287
|
+
def CUF_GetServerDateTime2(self):
|
|
288
|
+
return(self.CUF_GetServerDateTime("", "", ""));
|
|
289
|
+
# --------------------------------------------------------------------------------
|
|
290
|
+
def CUF_GetServerDate(self, Pms_DELIMITER):
|
|
291
|
+
ms_DateTime = "";
|
|
292
|
+
# ------------------------------------------------------------
|
|
293
|
+
ms_SQL = "SELECT DATE_FORMAT(CURRENT_DATE(), " \
|
|
294
|
+
"'%Y" + Pms_DELIMITER + "%m" + Pms_DELIMITER + \
|
|
295
|
+
"%d') AS _DATE";
|
|
296
|
+
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn , ms_SQL);
|
|
297
|
+
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
298
|
+
# ------------------------------------------------------------
|
|
299
|
+
ms_DateTime = obj_DataSet["_DATE"];
|
|
300
|
+
# ------------------------------------------------------------
|
|
301
|
+
return(ms_DateTime);
|
|
302
|
+
# --------------------------------------------------------------------------------
|
|
303
|
+
def CUF_GetServerTime(self, Pms_DELIMITER):
|
|
304
|
+
ms_DateTime = "";
|
|
305
|
+
# ------------------------------------------------------------
|
|
306
|
+
ms_SQL = "SELECT TIME_FORMAT(CURRENT_TIME(), " \
|
|
307
|
+
"'%H" + Pms_DELIMITER + "%i" + Pms_DELIMITER + \
|
|
308
|
+
"%s') AS _TIME";
|
|
309
|
+
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
310
|
+
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
311
|
+
# ------------------------------------------------------------
|
|
312
|
+
ms_DateTime = obj_DataSet["_TIME"];
|
|
313
|
+
# ------------------------------------------------------------
|
|
314
|
+
return(ms_DateTime);
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
# --------------------------------------------------------------------------------
|
|
318
|
+
# FUNC: 日期時間計算 (相加/減 Pmi_TimeSecond)
|
|
319
|
+
# PIN : Pms_DateTime 可配合使用 CUF_GetServerDateTime(...) 取得系統日期時間
|
|
320
|
+
# Pmi_TImeSecond -59 ~ +59 秒
|
|
321
|
+
# POUT:
|
|
322
|
+
# --------------------------------------------------------------------------------
|
|
323
|
+
def CUF_AddTime(self, Pms_DateTime, Pmi_TimeSecond):
|
|
324
|
+
ms_SQL = "SELECT ADDTIME('"+ Pms_DateTime + "', "+\
|
|
325
|
+
str(Pmi_TimeSecond)+ ") AS _TIMESTR ";
|
|
326
|
+
obj_MyQuery = self.CUF_DB_OpenSQL(self.CUobj_Conn, ms_SQL);
|
|
327
|
+
obj_DataSet = self.CUF_DB_FETCH(obj_MyQuery);
|
|
328
|
+
ms_TimeSTR = obj_DataSet["_TIMESTR"];
|
|
329
|
+
# ------------------------------------------------------------
|
|
330
|
+
return(ms_TimeSTR);
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
# --------------------------------------------------------------------------------
|
|
334
|
+
# FUNC: 將目前時間 加/減 Pmi_TimeSecond 秒
|
|
335
|
+
# PIN :
|
|
336
|
+
# POUT:
|
|
337
|
+
# --------------------------------------------------------------------------------
|
|
338
|
+
def CUF_AddTime_Current(self, Pmi_TimeSecond):
|
|
339
|
+
ms_CurrTime = self.CUF_GetServerDateTime1(True);
|
|
340
|
+
ms_CurrTime = self.CUF_AddTime(ms_CurrTime, Pmi_TimeSecond);
|
|
341
|
+
# ------------------------------------------------------------
|
|
342
|
+
return(ms_CurrTime);
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
# ---------------------------------------------------------------------------
|
|
346
|
+
# 使用範例
|
|
347
|
+
# ---------------------------------------------------------------------------
|
|
348
|
+
if(__name__ == '__main__'):
|
|
349
|
+
Gobj_mySQLDBCtrl = CLASS_mySQLDBCtrl();
|
|
350
|
+
# ------------------------------------------------------------
|
|
351
|
+
Gobj_Conn = Gobj_mySQLDBCtrl.CUF_OpenConnection(Pms_DB_HostIP= "mis.gotech.biz",
|
|
352
|
+
Pmi_DB_Port = 3300,
|
|
353
|
+
Pms_DB_Name = "gotech_mis",
|
|
354
|
+
Pms_User = "root",
|
|
355
|
+
Pms_Password = "gotechdf8000sys");
|
|
356
|
+
# ------------------------------------------------------------
|
|
357
|
+
# [範例1]
|
|
358
|
+
# ms_SQL = 'SELECT * From tbemployee';
|
|
359
|
+
# obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
360
|
+
# print(Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query)); # NEXT
|
|
361
|
+
# print(Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query)); # NEXT
|
|
362
|
+
# [範例2]
|
|
363
|
+
# ms_SQL = "SELECT * From tbdepartment order by DEPNO";
|
|
364
|
+
# obj_Query = self.CVobj_mySQLDBCtrl.CUF_DB_OpenSQL(self.CVobj_Conn, ms_SQL);
|
|
365
|
+
#
|
|
366
|
+
ms_SQL = """
|
|
367
|
+
SELECT tbdepartment.*, tbemployee.*
|
|
368
|
+
From tbemployee
|
|
369
|
+
INNER JOIN tbdepartment ON (
|
|
370
|
+
tbemployee.ZONE_ID = tbdepartment.ZONE_ID AND
|
|
371
|
+
tbemployee.DEPNO = tbdepartment.DEPNO)
|
|
372
|
+
WHERE EMPID >= 10 AND EMPID <= 30
|
|
373
|
+
ORDER BY EMPID
|
|
374
|
+
""";
|
|
375
|
+
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
376
|
+
mi_RECCNT = Gobj_mySQLDBCtrl.CUF_DB_RecordCount(obj_Query);
|
|
377
|
+
print("Record count = "+ str(mi_RECCNT));
|
|
378
|
+
|
|
379
|
+
for mi_c in range(1, 10):
|
|
380
|
+
obj_DataSet = Gobj_mySQLDBCtrl.CUF_DB_FETCH(obj_Query);
|
|
381
|
+
print(obj_DataSet["DEPNO"], " ", obj_DataSet["DEPNAME"],
|
|
382
|
+
obj_DataSet["EMPID"], " ", obj_DataSet["EMPNAME"]);
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
ms_SQL = "SELECT * FROM _def_fileservicemedia_d "\
|
|
386
|
+
" WHERE FolderType=1 AND MEDIAID=1 AND BlockID=1 ";
|
|
387
|
+
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
388
|
+
Gobj_mySQLDBCtrl.CUF_SetBlobField(obj_Query, "_def_fileservicemedia_d",
|
|
389
|
+
"FolderType=1 AND MEDIAID=1 AND BlockID=1 ",
|
|
390
|
+
"Media_Block",
|
|
391
|
+
"C:\\TEMP\\baselib.zip")
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
ms_SQL = "SELECT * FROM _def_fileservicemedia_d "\
|
|
395
|
+
" WHERE FolderType=1 AND MEDIAID=1 AND BlockID=1 ";
|
|
396
|
+
obj_Query = Gobj_mySQLDBCtrl.CUF_DB_OpenSQL(Gobj_Conn, ms_SQL);
|
|
397
|
+
Gobj_mySQLDBCtrl.CUF_GetBlobField(obj_Query, "Media_Block", "C:\\temp\\PPPKKK.zip");
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mySQLDBCtrlAPI
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: mySQLDBCtrlAPI Python package
|
|
5
|
+
Author-email: James Lin <tylin123@ms27.hinet.net>
|
|
6
|
+
Project-URL: Homepage, https://mis.gotech.biz
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: pymysql
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
setup.cfg
|
|
4
|
+
mySQLDBCtrlAPI/__init__.py
|
|
5
|
+
mySQLDBCtrlAPI/mySQLDBCtrl.py
|
|
6
|
+
mySQLDBCtrlAPI.egg-info/PKG-INFO
|
|
7
|
+
mySQLDBCtrlAPI.egg-info/SOURCES.txt
|
|
8
|
+
mySQLDBCtrlAPI.egg-info/dependency_links.txt
|
|
9
|
+
mySQLDBCtrlAPI.egg-info/requires.txt
|
|
10
|
+
mySQLDBCtrlAPI.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pymysql
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mySQLDBCtrlAPI
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "mySQLDBCtrlAPI"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "mySQLDBCtrlAPI Python package"
|
|
9
|
+
authors = [
|
|
10
|
+
{ name="James Lin", email="tylin123@ms27.hinet.net" }
|
|
11
|
+
]
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
license = { file = "LICENSE" }
|
|
14
|
+
dependencies = [
|
|
15
|
+
"pymysql",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[project.urls]
|
|
19
|
+
Homepage = "https://mis.gotech.biz"
|