scsh-0.6/scsh/odbc/odbc-types.scm

71 lines
2.0 KiB
Scheme

(define-record-type sql-date :sql-date
(make-sql-date year month day)
sql-date?
(year sql-date-year)
(month sql-date-month)
(day sql-date-day))
(define-record-discloser :sql-date
(lambda (rec)
`(sql-date year ,(sql-date-year rec)
month ,(sql-date-month rec)
day ,(sql-date-day rec))))
(define-exported-binding "sql-date-record-type" :sql-date)
(define-record-type sql-time :sql-time
(make-sql-time hour minute second)
sql-time?
(hour sql-time-hour)
(minute sql-time-minute)
(second sql-time-second))
(define-record-discloser :sql-time
(lambda (rec)
`(sql-time hour ,(sql-time-hour rec)
minute ,(sql-time-minute rec)
second ,(sql-time-second rec))))
(define-exported-binding "sql-time-record-type" :sql-time)
(define-record-type sql-timestamp :sql-timestamp
(make-sql-timestamp year month day hour minute second fraction)
sql-timestamp?
(year sql-timestamp-year)
(month sql-timestamp-month)
(day sql-timestamp-day)
(hour sql-timestamp-hour)
(minute sql-timestamp-minute)
(second sql-timestamp-second)
(fraction sql-timestamp-fraction))
(define-record-discloser :sql-timestamp
(lambda (rec)
`(sql-timestamp year ,(sql-timestamp-year rec)
month ,(sql-timestamp-month rec)
day ,(sql-timestamp-day rec)
hour ,(sql-timestamp-hour rec)
minute ,(sql-timestamp-minute rec)
second ,(sql-timestamp-second rec)
fraction ,(sql-timestamp-fraction rec))))
(define-exported-binding "sql-timestamp-record-type" :sql-timestamp)
(define-record-type sql-numeric :sql-numeric
(make-sql-numeric precision scale sign value)
sql-numeric?
(precision sql-numeric-precision)
(scale sql-numeric-scale)
(sign sql-numeric-sign)
(value sql-numeric-value))
(define-record-discloser :sql-numeric
(lambda (rec)
`(sql-numeric precision ,(sql-numeric-precision rec)
scale ,(sql-numeric-scale rec)
sign ,(sql-numeric-sign rec)
value ,(sql-numeric-value rec))))
(define-exported-binding "sql-numeric" :sql-numeric)