#40 export query result

This commit is contained in:
Jan Prochazka
2020-10-04 09:10:14 +02:00
parent 34fff77f66
commit 360a4ef1bc
6 changed files with 37 additions and 17 deletions

View File

@@ -143,13 +143,16 @@ function SourceTargetConfig({
schemaNameField,
tablesField = undefined,
}) {
const types = [
{ value: 'database', label: 'Database', directions: ['source', 'target'] },
{ value: 'csv', label: 'CSV file(s)', directions: ['source', 'target'] },
{ value: 'jsonl', label: 'JSON lines file(s)', directions: ['source', 'target'] },
{ value: 'excel', label: 'MS Excel file(s)', directions: ['source'] },
];
const { values, setFieldValue } = useFormikContext();
const types =
values[storageTypeField] == 'jsldata'
? [{ value: 'jsldata', label: 'Query result data', directions: ['source'] }]
: [
{ value: 'database', label: 'Database', directions: ['source', 'target'] },
{ value: 'csv', label: 'CSV file(s)', directions: ['source', 'target'] },
{ value: 'jsonl', label: 'JSON lines file(s)', directions: ['source', 'target'] },
{ value: 'excel', label: 'MS Excel file(s)', directions: ['source'] },
];
const storageType = values[storageTypeField];
const dbinfo = useDatabaseInfo({ conid: values[connectionIdField], database: values[databaseNameField] });
return (

View File

@@ -33,7 +33,8 @@ async function getConnection(storageType, conid, database) {
}
function getSourceExpr(sourceName, values, sourceConnection, sourceDriver) {
if (values.sourceStorageType == 'database') {
const { sourceStorageType } = values;
if (sourceStorageType == 'database') {
const fullName = { schemaName: values.sourceSchemaName, pureName: sourceName };
return [
'tableReader',
@@ -43,18 +44,22 @@ function getSourceExpr(sourceName, values, sourceConnection, sourceDriver) {
},
];
}
if (isFileStorage(values.sourceStorageType)) {
if (isFileStorage(sourceStorageType)) {
const sourceFile = values[`sourceFile_${sourceName}`];
if (values.sourceStorageType == 'excel') {
if (sourceStorageType == 'excel') {
return ['excelSheetReader', sourceFile];
}
if (values.sourceStorageType == 'jsonl') {
if (sourceStorageType == 'jsonl') {
return ['jsonLinesReader', sourceFile];
}
if (values.sourceStorageType == 'csv') {
if (sourceStorageType == 'csv') {
return ['csvReader', sourceFile];
}
}
if (sourceStorageType == 'jsldata') {
return ['jslDataReader', { jslid: values.sourceJslId }];
}
throw new Error(`Unknown storage type: ${sourceStorageType}`);
}
function getFlagsFroAction(action) {