def ExecuteQueryDetailed(
self, query: str) -> sql_query_data.SQLQueryData:
"""Executes the SQL Query and gets detailed information.
Args:
query (str): The SQL Query to execute on the SQLite database.
Returns:
sql_query_data.SQLQueryData: The data to the Query
"""
query_data = sql_query_data.SQLQueryData(
data=None, has_error=True, columns=None)
if not re.fullmatch('[A-Za-z,.;*=_0-9 ]*', query):
query_data.error_message = ('Warning: Don\'t use any characters beside'
' a-z A-Z 0-9 . ; , * = _')
return query_data
if query.lower()[query.lower().find(' from '):].find(' as ') != -1:
query_data.error_message = ('Warning: '
'Don\'t use any alias for a table name')
return query_data
data_from_executed_query = self._ExecuteQuery(query, True)
if not data_from_executed_query.has_error:
duplicate_names = self._type_helper.GetDuplicateColumnNames(
data_from_executed_query.columns)
if duplicate_names:
duplicate_names_as_string = ' '.join(duplicate_names)
data_from_executed_query.has_error = True
data_from_executed_query.error_message = (
'Please use an alias (AS) for '
'those column names: {0}'.format(duplicate_names_as_string))
if not data_from_executed_query.has_error:
data_from_executed_query.columns = (
self._type_helper.AddMissingTypesFromSchema(
data_from_executed_query.columns, query))
return data_from_executed_query
sqlite_query_execution.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录