69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import { Connection, ConnectionConfiguration, Request } from "tedious";
|
|
|
|
const tediousConfig: ConnectionConfiguration = {
|
|
server: 'localhost',
|
|
options: {
|
|
trustServerCertificate: true,
|
|
port: 1433,
|
|
database: 'nGeneral'
|
|
},
|
|
authentication: {
|
|
type: 'default',
|
|
options: {
|
|
userName: 'SA',
|
|
password: 'oMhthmsvbYHc'
|
|
}
|
|
}
|
|
}
|
|
|
|
export function tediousQuery(query: string) {
|
|
// Read all rows from table
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
const connection = new Connection(tediousConfig)
|
|
|
|
connection.on('connect', (err) => {
|
|
if (err) {
|
|
reject(err)
|
|
return
|
|
}
|
|
|
|
const result: any = [];
|
|
|
|
const request = new Request(
|
|
query,
|
|
(err, rowCount) => {
|
|
if (err) {
|
|
console.log(`Executing ${query}, ${rowCount} rows.`);
|
|
console.error(err.message);
|
|
} else {
|
|
console.log(`Executing ${query}, ${rowCount} rows.`);
|
|
}
|
|
}
|
|
)
|
|
|
|
request.on("row", (columns) => {
|
|
const entry: any = {};
|
|
columns.forEach((column: any) => {
|
|
entry[column.metadata.colName] = column.value;
|
|
});
|
|
result.push(entry);
|
|
});
|
|
|
|
request.on('error', error => reject(error));// some error happened, reject the promise
|
|
request.on('requestCompleted', () => {
|
|
connection.close();
|
|
resolve(result)
|
|
}); // resolve the promise with the result rows.
|
|
|
|
connection.execSql(request)
|
|
})
|
|
|
|
connection.on('error', (err) => {
|
|
reject(err)
|
|
})
|
|
|
|
connection.connect()
|
|
});
|
|
} |