(require (lib "srpersist.ss" "srpersist")) (define henv (alloc-env)) (define hdbc (alloc-connect henv)) (connect hdbc "system" "" "") (let ((hstmt (alloc-stmt hdbc))) (prepare hstmt "USE system") (sql-execute hstmt)) (define id-buffer (make-buffer 'sql-c-long)) (define name-buffer (make-buffer '(sql-c-char 20))) (define tele-buffer (make-buffer '(sql-c-char 20))) (define add-buffer (make-buffer '(sql-c-char 20))) (define time-buffer (make-buffer 'sql-c-timestamp)) (define state-buffer (make-buffer '(sql-c-char 10))) (define id-indicator (make-indicator)) (define name-indicator (make-indicator)) (define tele-indicator (make-indicator)) (define add-indicator (make-indicator)) (define time-indicator (make-indicator)) (define state-indicator (make-indicator)) (define hstmt (alloc-stmt hdbc)) (define (fetch-all) (with-handlers ([(lambda (exn) (exn-no-data? exn)) (lambda (exn) '())]) (cons (begin (fetch hstmt) (list (car (read-buffer id-buffer)) (car (read-buffer name-buffer)) (car (read-buffer tele-buffer)) (car (read-buffer add-buffer)) (let ((time1 (car (read-buffer time-buffer)))) (string-append (number->string (sql-timestamp-year time1)) "-" (number->string (sql-timestamp-month time1)) "-" (number->string (sql-timestamp-day time1)) " " (number->string (sql-timestamp-hour time1)) ":" (number->string (sql-timestamp-minute time1)))) (car (read-buffer state-buffer)))) (fetch-all)))) (prepare hstmt "select id, name, tele, address, time1, state from baoxiu;") (sql-execute hstmt) (bind-col hstmt 1 id-buffer id-indicator) (bind-col hstmt 2 name-buffer name-indicator) (bind-col hstmt 3 tele-buffer tele-indicator) (bind-col hstmt 4 add-buffer add-indicator) (bind-col hstmt 5 time-buffer time-indicator) (bind-col hstmt 6 state-buffer state-indicator) (fetch-all)