我有一个名为出勤事件的列表,由结构类型出勤事件组成。结构定义为
seekBarFinishTime
" date"是活动的日期和" flag"是一个2个字符的值,表示事件的类型。
在我的数据库中,我选择"选择日期,来自attendance_table"的代码,我希望将这两列添加到每行的考勤事件列表中。
那么,怎么办呢?
答案 0 :(得分:3)
执行查询并返回attendance-event
结构列表:
(for/list ([(date code)
(in-query conn "select date, code from attendance_table")])
(make-attendance-event date code))
答案 1 :(得分:0)
我发现在将数据库行转换为哈希表后,更容易使用数据库行。以下函数将var func = function (data) {
var selectedValues = {};
var sliceIndex = 0;
while (Object.keys(selectedValues).length < 3 && sliceIndex < data[0].length) {
selectedValues[data[0][sliceIndex]] = true;
sliceIndex++;
}
return data.map(function (axis) {
return axis.slice(0, sliceIndex);
});
};
console.log(func([[1,1,2,2,3,3,4,4,5,5],[0,0,0,1,0,1,0,1,0,1]]));
函数返回的rows-result
类型转换为不可变哈希值列表:
query
然后你可以像这样包装(require (planet jphelps/loop)) ;; Use the loop macro from Common Lisp.
(define (rows-result->hash results)
(let ((header (rows-result-headers results)))
(loop for row in (rows-result-rows results)
collect (loop for ((_ . name) (_ . decltype)) in header
for column across row
with-collection-type hash/immutable
collect (cons name column)))))
函数:
query
最后,要创建你的结构:
(define (simple-query query-text conn . params)
(rows-result->hash (apply query (list* conn query-text params))))