本文整理匯總了TypeScript中eta-lib.db類的典型用法代碼示例。如果您正苦於以下問題:TypeScript db類的具體用法?TypeScript db怎麽用?TypeScript db使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了db類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: CURRENT_TIMESTAMP
eta.db.query(sql, [req.session["userid"]], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
res.redirect("/apply?error=" + querystring.escape("We were unable to process your application due to an internal error."));
return;
}
let valueSql: string = "(?, ?, 1),".repeat(positions.length);
let sql: string = `
INSERT INTO ApplicantPosition
(id, position, count)
VALUES ${valueSql.substring(0, valueSql.length - 1)}
ON DUPLICATE KEY UPDATE
lastApplied = CURRENT_TIMESTAMP(),
count = count + 1`;
let params: string[] = [];
for (let i: number = 0; i < positions.length; i++) {
params.push(req.session["userid"]);
params.push(positions[i]);
}
eta.db.query(sql, params, (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
res.redirect("/apply?error=" + querystring.escape("We were unable to process your application due to an internal error."));
return;
}
res.redirect("/apply?success=true");
});
});
示例2: render
public render(req: express.Request, res: express.Response, callback: (env: { [key: string]: any }) => void): void {
let curDate: Date = new Date();
let sql: string = `
SELECT
UNIX_TIMESTAMP(date + interval 1 day - interval 1 second) * 1000 AS start,
UNIX_TIMESTAMP(date + interval 1 second) * 1000 AS end
FROM
DateClosed
WHERE
UNIX_TIMESTAMP(date) >= ? / 1000 AND
UNIX_TIMESTAMP(date) < ? / 1000`;
eta.db.query(sql, [req.query.from, req.query.to], (err: eta.DBError, closedRows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
let n: number = 0;
for (let i: number = 0; i < closedRows.length; i++) {
closedRows[i].id = n;
closedRows[i].url = "";
closedRows[i].class = "event-danger";
closedRows[i].title = "Closed";
}
sql = `
SELECT
UNIX_TIMESTAMP(DateExamJam.start) * 1000 AS start,
UNIX_TIMESTAMP(DateExamJam.end) * 1000 AS end,
Course.subject AS subject,
Course.number AS number
FROM
DateExamJam
LEFT JOIN Course ON
DateExamJam.course = Course.id
WHERE
UNIX_TIMESTAMP(start) >= ? / 1000 AND
UNIX_TIMESTAMP(end) < ? / 1000`;
eta.db.query(sql, [req.query.from, req.query.to], (err: eta.DBError, examJamRows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
for (let i: number = 0; i < examJamRows.length; i++) {
examJamRows[i].id = n;
examJamRows[i].url = "";
examJamRows[i].class = "event-info";
examJamRows[i].title = examJamRows[i].subject + " " + examJamRows[i].number + " Exam Jam @ " + eta.time.getMinuteTime(new Date(examJamRows[i].start)).toString();
closedRows.push(examJamRows[i]);
}
callback({
raw: JSON.stringify({
"success": 1,
"result": closedRows
})
});
});
});
}
示例3: callback
eta.athlete.isDirector(req.session["userid"], (isAthleteDirector: boolean) => {
if (isAthleteDirector === null) {
callback({ errcode: eta.http.InternalError });
return;
}
if (!isAthleteDirector) {
res.redirect("/track/index");
return;
}
let isPastWeek: boolean = !!req.query.isPastWeek;
let pastWeekSql: string = `AND DATE(Visit.timeIn) >= (CURDATE() - INTERVAL 7 DAY)`;
let sql: string = `
SELECT
Person.id,
Person.firstName,
Person.lastName,
VisitCount.count AS visitCount,
VisitCount.duration AS visitDuration,
VisitCount.timesOut AS visitTimesOut,
VisitCount.lastTimeIn AS visitLastTimeIn
FROM
Athlete
LEFT JOIN Person ON
Athlete.id = Person.id
LEFT JOIN (
SELECT
Visit.student AS student,
COUNT(DISTINCT Visit.student, Visit.timeIn) AS count,
ROUND(SUM(TIME_TO_SEC(TIMEDIFF(Visit.timeOut, Visit.timeIn))) / 3600, 2) AS duration,
GROUP_CONCAT(IFNULL(Visit.timeOut, 'NULL') ORDER BY Visit.timeIn DESC SEPARATOR ', ') AS timesOut,
DATE(MAX(Visit.timeIn)) = CURDATE() AS lastTimeIn
FROM
Visit
WHERE
Visit.term = ?
${isPastWeek ? pastWeekSql : ""}
GROUP BY
Visit.student
) VisitCount ON
Athlete.id = VisitCount.student
WHERE
VisitCount.count > 0`;
eta.db.query(sql, [eta.term.getCurrent().id], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
for (let i: number = 0; i < rows.length; i++) {
let lastTimeOut: string = rows[i].visitTimesOut.split(", ")[0];
rows[i].isCurrent = (lastTimeOut === "NULL") && rows[i].visitLastTimeIn;
}
callback({
"students": rows,
"isPastWeek": isPastWeek
})
});
});
示例4:
eta.wiziq.schedule(start, end, rooms[i], (err: Error, result?: any) => {
if (err) {
return eta.logger.warn("Couldn't schedule room " + rooms[i] + ": " + err.message);
}
let url: string = result.CommonAttendeeUrl;
eta.db.query(sql, [rooms[i], url], (err: eta.DBError, rows: any[]) => {
if (err) {
return eta.logger.dbError(err);
}
});
});
示例5: callback
eta.section.getByID(req.query.id, (section: eta.Section) => {
if (!section) {
callback({ errcode: eta.http.NotFound });
return;
}
// the prof isn't the one logged in
if (section.professor != req.session["userid"]) {
callback({ errcode: eta.http.Forbidden });
return;
}
let isPastWeek: boolean = !!req.query.isPastWeek;
let pastWeekSql: string = `AND DATE(Visit.timeIn) >= (CURDATE() - INTERVAL 7 DAY)`;
let sql: string = `
SELECT
Person.id,
Person.firstName,
Person.lastName,
VisitCount.count AS visitCount,
VisitCount.duration AS visitDuration
FROM
StudentSection
LEFT JOIN Person ON
StudentSection.student = Person.id
LEFT JOIN (
SELECT
Visit.student AS student,
COUNT(DISTINCT Visit.student, Visit.timeIn) AS count,
ROUND(SUM(TIME_TO_SEC(TIMEDIFF(Visit.timeOut, Visit.timeIn))) / 3600, 2) AS duration
FROM
Visit
WHERE
Visit.section REGEXP ?
${isPastWeek ? pastWeekSql : ""}
GROUP BY Visit.student
) VisitCount ON
StudentSection.student = VisitCount.student
WHERE
StudentSection.section = ? AND
StudentSection.status = 'E'`;
eta.db.query(sql, [req.query.id, req.query.id], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
callback({
"section": section,
"students": rows,
"isPastWeek": isPastWeek
});
});
});
示例6: callback
eta.student.get(req.session["userid"], (student: eta.Student) => {
if (!student) {
callback({ errcode: eta.http.InternalError });
return;
}
if (student.sections.length == 0
|| !eta.section.hasCurrentSections(student.sections, eta.term.getCurrent().id)) {
res.redirect("/track/index");
return;
}
let sql: string = `
SELECT
LOWER(TIME_FORMAT(Visit.timeIn, '%l:%i %p')) AS timeIn,
LOWER(TIME_FORMAT(Visit.timeOut, '%l:%i %p')) AS timeOut,
ROUND(TIME_TO_SEC(TIMEDIFF(Visit.timeOut, Visit.timeIn)) / 3600, 2) AS totalHours,
DATE_FORMAT(Visit.timeIn, '%c/%e/%Y') AS date,
GROUP_CONCAT(DISTINCT CONCAT(Course.subject, ' ', Course.number) ORDER BY Course.subject, Course.number SEPARATOR ', ') AS courses
FROM
Visit
RIGHT JOIN Section ON
Visit.section REGEXP Section.id
RIGHT JOIN Course ON
Section.course = Course.id
WHERE
Visit.term = ? AND
Visit.student = ?
GROUP BY Visit.student, Visit.timeIn
ORDER BY Visit.timeIn`;
eta.db.query(sql, [eta.term.getCurrent().id, req.session["userid"]], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
let totalHours: number = 0;
for (let i: number = 0; i < rows.length; i++) {
totalHours += rows[i].totalHours;
}
eta.person.getByID(req.session["userid"], (person: eta.Person) => {
if (!person) {
callback({ errcode: eta.http.InternalError });
return;
}
callback({
"visits": rows,
"name": person.firstName + " " + person.lastName,
"totalHours": totalHours.toFixed(2)
});
});
});
});
示例7: callback
eta.db.query(sql, [req.body.start, req.body.end], (err: eta.DBError, examJamDays: any[]) => {
if (err) {
eta.logger.dbError(err);
return callback({ errcode: eta.http.InternalError });
}
sql = `
SELECT
1 AS isClosed,
date AS day
FROM
DateClosed
WHERE
date > DATE(?) AND
date < DATE(?)`;
eta.db.query(sql, [req.body.start, req.body.end], (err: eta.DBError, rawDays: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
let days: {
[date: string]: {
isExamJam: boolean;
isClosed: boolean;
}
} = {};
for (let i: number = 0; i < examJamDays.length; i++) {
rawDays.push(examJamDays[i]);
}
for (let i: number = 0; i < rawDays.length; i++) {
let day: string = eta.time.getStandardDate(rawDays[i].day);
if (!days[day]) {
days[day] = {
"isExamJam": false,
"isClosed": false
};
}
if (rawDays[i].isExamJam) {
days[day].isExamJam = true;
}
if (rawDays[i].isClosed) {
days[day].isClosed = true;
}
}
callback({
"raw": JSON.stringify(days)
});
});
});
示例8: callback
eta.person.getByID(req.body.student, (person: eta.Person) => {
if (!person) {
callback({ errcode: eta.http.InternalError });
return;
}
let sectionSql: string = "AND Section.id = ?";
let params: string[] = [req.body.student, eta.term.getCurrent().id];
if (req.body.section) {
params.push(req.body.section);
}
let sql: string = `
SELECT
GROUP_CONCAT(DISTINCT CONCAT(Course.subject, ' ', Course.number) ORDER BY Course.subject, Course.number SEPARATOR ', ') AS "0",
DATE_FORMAT(Visit.timeIn, '%c/%e/%Y') AS "1",
LOWER(TIME_FORMAT(Visit.timeIn, '%l:%i %p')) AS "2",
IFNULL(
LOWER(TIME_FORMAT(Visit.timeOut, '%l:%i %p')),
'N/A'
) AS "3",
IFNULL(
ROUND(TIME_TO_SEC(TIMEDIFF(Visit.timeOut, Visit.timeIn)) / 3600, 2),
'0.00'
) AS "4"
FROM
Visit
RIGHT JOIN Section ON
Visit.section REGEXP Section.id
RIGHT JOIN Course ON
Section.course = Course.id
WHERE
Visit.student = ? AND
Visit.term = ?
${req.body.section ? sectionSql : ""}
GROUP BY Visit.timeIn`;
eta.db.query(sql, params, (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
callback({
"raw": JSON.stringify({
"firstName": person.firstName,
"lastName": person.lastName,
"visits": rows
})
});
});
});
示例9: render
public render(req: express.Request, res: express.Response, callback: (env: { [key: string]: any }) => void): void {
// check if a position was selected
let positions: string[] = [];
for (let param in req.body) {
if (param.startsWith("Position:")) {
positions.push(param.split(":")[1]);
}
}
if (positions.length == 0) {
res.redirect("/apply?error=" + querystring.escape("Please select positions before submitting your application."));
return;
}
let sql: string = `
INSERT IGNORE INTO Applicant
(id, notes, workStudy, phone, altEmail)
VALUES (?, '', 0, '', '')`;
eta.db.query(sql, [req.session["userid"]], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
res.redirect("/apply?error=" + querystring.escape("We were unable to process your application due to an internal error."));
return;
}
let valueSql: string = "(?, ?, 1),".repeat(positions.length);
let sql: string = `
INSERT INTO ApplicantPosition
(id, position, count)
VALUES ${valueSql.substring(0, valueSql.length - 1)}
ON DUPLICATE KEY UPDATE
lastApplied = CURRENT_TIMESTAMP(),
count = count + 1`;
let params: string[] = [];
for (let i: number = 0; i < positions.length; i++) {
params.push(req.session["userid"]);
params.push(positions[i]);
}
eta.db.query(sql, params, (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
res.redirect("/apply?error=" + querystring.escape("We were unable to process your application due to an internal error."));
return;
}
res.redirect("/apply?success=true");
});
});
}
示例10: render
public render(req: express.Request, res: express.Response, callback: (env: { [key: string]: any }) => void): void {
let sql: string = `
SELECT
Position.name,
GROUP_CONCAT(
DISTINCT CONCAT(
Course.subject, ' ', Course.number
)
ORDER BY
Course.subject ASC,
Course.number ASC
) AS courses
FROM
Position
LEFT JOIN Course ON
Course.tutor = Position.name
WHERE Position.open = 1
GROUP BY Position.name
ORDER BY Position.name ASC`;
eta.db.query(sql, [], (err: eta.DBError, rows: any[]) => {
if (err) {
eta.logger.dbError(err);
callback({ errcode: eta.http.InternalError });
return;
}
eta.person.getByID(req.session["userid"], (person: eta.Person) => {
if (!person) {
// this person doesn't exist
eta.logger.warn("Person " + req.session["userid"] + " does not exist.");
callback({ errcode: eta.http.InternalError });
return;
}
callback({
"isAvailable": rows.length != 0,
"firstName": person.firstName,
"lastName": person.lastName,
"error": req.query.error,
"success": req.query.success,
"positions": rows
});
});
});
}