MCPcopy Index your code
hub / github.com/sequelize/sequelize / _run

Method _run

src/dialects/mssql/query.js:56–125  ·  view source on GitHub ↗
(connection, sql, parameters, errStack)

Source from the content-addressed store, hash-verified

54 }
55
56 async _run(connection, sql, parameters, errStack) {
57 this.sql = sql;
58 const { options } = this;
59
60 const complete = this._logQuery(sql, debug, parameters);
61
62 const query = new Promise((resolve, reject) => {
63 // TRANSACTION SUPPORT
64 if (sql.startsWith('BEGIN TRANSACTION')) {
65 return connection.beginTransaction(error => error ? reject(error) : resolve([]), options.transaction.name, connection.lib.ISOLATION_LEVEL[options.isolationLevel]);
66 }
67 if (sql.startsWith('COMMIT TRANSACTION')) {
68 return connection.commitTransaction(error => error ? reject(error) : resolve([]));
69 }
70 if (sql.startsWith('ROLLBACK TRANSACTION')) {
71 return connection.rollbackTransaction(error => error ? reject(error) : resolve([]), options.transaction.name);
72 }
73 if (sql.startsWith('SAVE TRANSACTION')) {
74 return connection.saveTransaction(error => error ? reject(error) : resolve([]), options.transaction.name);
75 }
76
77 const rows = [];
78 const request = new connection.lib.Request(sql, (err, rowCount) => err ? reject(err) : resolve([rows, rowCount]));
79
80 if (parameters) {
81 _.forOwn(parameters, (value, key) => {
82 const paramType = this.getSQLTypeFromJsType(value, connection.lib.TYPES);
83 request.addParameter(key, paramType.type, value, paramType.typeOptions);
84 });
85 }
86
87 request.on('row', columns => {
88 rows.push(columns);
89 });
90
91 connection.execSql(request);
92 });
93
94 let rows, rowCount;
95
96 try {
97 [rows, rowCount] = await query;
98 } catch (err) {
99 err.sql = sql;
100 err.parameters = parameters;
101
102 throw this.formatError(err, errStack);
103 }
104
105 complete();
106
107 if (Array.isArray(rows)) {
108 rows = rows.map(columns => {
109 const row = {};
110 for (const column of columns) {
111 const typeid = column.metadata.type.id;
112 const parse = parserStore.get(typeid);
113 let value = column.value;

Callers 1

runMethod · 0.95

Calls 8

getSQLTypeFromJsTypeMethod · 0.95
formatErrorMethod · 0.95
formatResultsMethod · 0.95
_logQueryMethod · 0.80
commitTransactionMethod · 0.80
rollbackTransactionMethod · 0.80
getMethod · 0.65
parseFunction · 0.50

Tested by

no test coverage detected