Skip to content

Commit a168297

Browse files
committed
fix: no field preview error
1 parent 4f28713 commit a168297

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

backend/apps/datasource/crud/datasource.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,19 +230,26 @@ def updateField(session: SessionDep, field: CoreField):
230230

231231

232232
def preview(session: SessionDep, id: int, data: TableObj):
233+
if data.fields is None or len(data.fields) == 0:
234+
return {"fields": [], "data": [], "sql": ''}
235+
236+
fields = [f.field_name for f in data.fields if f.checked]
237+
if fields is None or len(fields) == 0:
238+
return {"fields": [], "data": [], "sql": ''}
239+
233240
ds = session.query(CoreDatasource).filter(CoreDatasource.id == id).first()
234241
conf = DatasourceConf(**json.loads(aes_decrypt(ds.configuration))) if ds.type != "excel" else get_engine_config()
235242
sql: str = ""
236243
if ds.type == "mysql":
237-
sql = f"""SELECT `{"`, `".join([f.field_name for f in data.fields if f.checked])}` FROM `{data.table.table_name}` LIMIT 100"""
244+
sql = f"""SELECT `{"`, `".join(fields)}` FROM `{data.table.table_name}` LIMIT 100"""
238245
elif ds.type == "sqlServer":
239-
sql = f"""SELECT [{"], [".join([f.field_name for f in data.fields if f.checked])}] FROM [{conf.dbSchema}].[{data.table.table_name}]
246+
sql = f"""SELECT [{"], [".join(fields)}] FROM [{conf.dbSchema}].[{data.table.table_name}]
240247
ORDER BY [{data.fields[0].field_name}]
241248
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY"""
242249
elif ds.type == "pg" or ds.type == "excel":
243-
sql = f"""SELECT "{'", "'.join([f.field_name for f in data.fields if f.checked])}" FROM "{conf.dbSchema}"."{data.table.table_name}" LIMIT 100"""
250+
sql = f"""SELECT "{'", "'.join(fields)}" FROM "{conf.dbSchema}"."{data.table.table_name}" LIMIT 100"""
244251
elif ds.type == "oracle":
245-
sql = f"""SELECT "{'", "'.join([f.field_name for f in data.fields if f.checked])}" FROM "{conf.dbSchema}"."{data.table.table_name}"
252+
sql = f"""SELECT "{'", "'.join(fields)}" FROM "{conf.dbSchema}"."{data.table.table_name}"
246253
ORDER BY "{data.fields[0].field_name}"
247254
OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY"""
248255
return exec_sql(ds, sql)

0 commit comments

Comments
 (0)