(() => { function guid() { // Public Domain/MIT var d = new Date().getTime();//Timestamp var d2 = (performance && performance.now && (performance.now() * 1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16;//random number between 0 and 16 if (d > 0) {//Use timestamp until depleted r = (d + r) % 16 | 0; d = Math.floor(d / 16); } else {//Use microseconds since page-load if supported r = (d2 + r) % 16 | 0; d2 = Math.floor(d2 / 16); } return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } const questions = [ { "Text": "Laadruimte in goede staat? (J/N)", "QuestionType": "Meerkeuzevraag", "Situation": "Vooraf", "Level": "Aanmelding", "IsForTransportDirectionOut": "Ja", "IsForTransportDirectionIn": "Nee", "Container": "Ja", "Auto": "Ja", "Bulk": "Ja", "Bigbags": "Ja", "Zakgoed ": "Ja", "Emballage": "Ja" } ]; var sql = questions.map((q, i) => { const getQuestionType = () => { if (q.QuestionType == "Invoer getal") return 1; if (q.QuestionType == "Meerkeuzevraag") return 2; if (q.QuestionType == "Foto") return 3; return 0; } const getSituation = () => { if (q.Situation == "Achteraf") return 2; return 1; } const getLevel = () => { if (q.Level == "Aanmelding") return 1; if (q.Level == "Order") return 2; if (q.Level == "Artikel") return 3; return 0; } const strToBool = (s) => s == "Ja" ? 1 : 0; const columns = [ "Id", "SortOrder", "Text", "AS400Link", "QuestionType", "Level", "Situation", "IsForTransportDirectionIn", "IsForTransportDirectionOut", "IsForCargoTypeBulk", "IsForCargoTypeBagged", "IsForCargoTypePackaging", "IsForBigBags", "IsForTransporterTypeContainer", "IsForTransporterTypeAuto" ] const values = [ guid(), // Id i + 1, // SortOrder q.Text, // Text '', //AS400Link, getQuestionType(), // QuestionType getLevel(), // Level getSituation(), //Situation strToBool(q.IsForTransportDirectionIn), //IsForTransportDirectionIn strToBool(q.IsForTransportDirectionOut), //IsForTransportDirectionOut strToBool(q.Bulk),// IsForCargoTypeBulk strToBool(q.Zakgoed),// IsForCargoTypeBagged strToBool(q.Emballage),// IsForCargoTypePackaging strToBool(q.Bigbags), // IsForBigBags strToBool(q.Container),// IsForTransporterTypeContainer strToBool(q.Auto),// IsForTransporterTypeAuto ]; const sqlColumns = columns.map(c => `[${c}]`).join(", "); const sqlValues = values.map(c => typeof c == "number" ? c : `'${c}'`).join(", "); return [ "INSERT INTO [dbo].[Question]", `\t(${sqlColumns})`, "\tVALUES", `\t(${sqlValues})`, ].join("\r\n"); }); console.log(sql.join("\r\n")); })();
420500cookie-checkJavascript Build SQL statements