@@ 272-292 (lines=21) @@ | ||
269 | cursor.close() |
|
270 | ||
271 | # ------------------------------------------------------------------------------------------------------------------ |
|
272 | def execute_sp_row0(self, sql: str, *params) -> Optional[Dict[str, Any]]: |
|
273 | """ |
|
274 | Executes a stored procedure that selects 0 or 1 row. Returns the selected row or None. |
|
275 | ||
276 | :param str sql: The SQL call the the stored procedure. |
|
277 | :param iterable params: The parameters for the stored procedure. |
|
278 | ||
279 | :rtype: None|dict[str,*] |
|
280 | """ |
|
281 | cursor = self.__conn.cursor(as_dict=True) |
|
282 | cursor.execute(sql, params) |
|
283 | rows = cursor.fetchall() |
|
284 | cursor.close() |
|
285 | ||
286 | n = len(rows) |
|
287 | if n == 1: |
|
288 | return rows[0] |
|
289 | elif n == 0: |
|
290 | return None |
|
291 | else: |
|
292 | raise ResultException('0 or 1', n, sql) |
|
293 | ||
294 | # ------------------------------------------------------------------------------------------------------------------ |
|
295 | def execute_sp_row1(self, sql: str, *params) -> Dict[str, Any]: |
|
@@ 152-172 (lines=21) @@ | ||
149 | cursor.close() |
|
150 | ||
151 | # ------------------------------------------------------------------------------------------------------------------ |
|
152 | def execute_row0(self, sql, *params) -> Optional[Dict[str, Any]]: |
|
153 | """ |
|
154 | Executes a query that selects 0 or 1 row. Returns the selected row or None. |
|
155 | ||
156 | :param str sql: The SQL statement. |
|
157 | :param iterable params: The parameters. |
|
158 | ||
159 | :rtype: None|dict[str,*] |
|
160 | """ |
|
161 | cursor = self.__conn.cursor(as_dict=True) |
|
162 | cursor.execute(sql, *params) |
|
163 | rows = cursor.fetchall() |
|
164 | cursor.close() |
|
165 | ||
166 | n = len(rows) |
|
167 | if n == 1: |
|
168 | return rows[0] |
|
169 | elif n == 0: |
|
170 | return None |
|
171 | else: |
|
172 | raise ResultException('0 or 1', n, sql) |
|
173 | ||
174 | # ------------------------------------------------------------------------------------------------------------------ |
|
175 | def execute_row1(self, sql: str, *params) -> Dict[str, Any]: |