Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | add sql field to sqlite3 statement |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
538cf8286e5c52ed750f925af26c2463 |
User & Date: | aldo 2019-04-11 18:15:56 |
Context
2024-09-27
| ||
18:19 | updated irregex check-in: a8011c42a0 user: aldo tags: trunk | |
2019-04-11
| ||
18:15 | add sql field to sqlite3 statement check-in: 538cf8286e user: aldo tags: trunk | |
2018-12-09
| ||
17:58 | added library qrencode check-in: 7182389a97 user: aldo tags: trunk | |
Changes
Changes to sqlite3.sls.
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 ... 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 ... 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 ... 828 829 830 831 832 833 834 835 836 837 |
(fields (mutable ptr) (mutable busy-handler))) (define-record-type statement (fields (mutable ptr) (mutable database))) ;(record-writer ; (type-descriptor statement) ; (lambda (r p wr) ; (wr ; (if (statement-ptr r) ; (format "#<sqlite3:statement sql=~s>" (source-sql r)) ; "#<sqlite3:statement zombie>") ; p))) ;(define-check+error-type statement) ;;; Helpers ;; Conditions (define rtd (record-type-descriptor &sqlite3)) ................................................................................ n)) (define (sqlite3-next-stmt db) (check-database 'sqlite3-next-stmt db) (let* ([f (foreign-procedure "sqlite3_next_stmt" (sqlite3:database*) sqlite3:statement*)] [stmt* (f (database-addr db))]) (make-statement (make-ftype-pointer sqlite3:statement* stmt*) db))) (define finalize! (case-lambda [(x) (finalize! x #f)] [(x finalize-statements?) (define sqlite3_finalize (foreign-procedure "sqlite3_finalize" (sqlite3:statement*) int)) ................................................................................ (assert (and prepare (string? sql))) (let retry ([retries 0]) (let* ([ptr (alloc-statement*)] [zSql (string->utf8 sql)] [nByte (bytevector-length zSql)] [e (sqlite3_prepare_v2 (database-addr db) zSql nByte (ftype-pointer-address ptr) #f)]) (cond [(equal? e 0) (make-statement (ftype-&ref sqlite3:statement** (*) ptr) db)] [else (case (number->sqlite3:status e) #;[(busy) (let ([h (database-busy-handler db)]) (cond [(and h (h db retries)) (retry (fx+ retries 1))] ................................................................................ (type-descriptor database) (lambda (r p wr) (wr (if (database-ptr r) "#<sqlite3:database>" "#<sqlite3:database zombie>") p))) ) ; library sqlite3 |
| < < < < < < < < < > | | > > > > > > > > > |
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 ... 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 ... 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 ... 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 |
(fields (mutable ptr) (mutable busy-handler))) (define-record-type statement (fields (mutable ptr) (mutable database) (mutable sql))) ;(define-check+error-type statement) ;;; Helpers ;; Conditions (define rtd (record-type-descriptor &sqlite3)) ................................................................................ n)) (define (sqlite3-next-stmt db) (check-database 'sqlite3-next-stmt db) (let* ([f (foreign-procedure "sqlite3_next_stmt" (sqlite3:database*) sqlite3:statement*)] [stmt* (f (database-addr db))]) (make-statement (make-ftype-pointer sqlite3:statement* stmt*) db ""))) (define finalize! (case-lambda [(x) (finalize! x #f)] [(x finalize-statements?) (define sqlite3_finalize (foreign-procedure "sqlite3_finalize" (sqlite3:statement*) int)) ................................................................................ (assert (and prepare (string? sql))) (let retry ([retries 0]) (let* ([ptr (alloc-statement*)] [zSql (string->utf8 sql)] [nByte (bytevector-length zSql)] [e (sqlite3_prepare_v2 (database-addr db) zSql nByte (ftype-pointer-address ptr) #f)]) (cond [(equal? e 0) (make-statement (ftype-&ref sqlite3:statement** (*) ptr) db sql)] [else (case (number->sqlite3:status e) #;[(busy) (let ([h (database-busy-handler db)]) (cond [(and h (h db retries)) (retry (fx+ retries 1))] ................................................................................ (type-descriptor database) (lambda (r p wr) (wr (if (database-ptr r) "#<sqlite3:database>" "#<sqlite3:database zombie>") p))) (record-writer (type-descriptor statement) (lambda (r p wr) (wr (if (statement-ptr r) (format "#<sqlite3:statement sql=~s>" (statement-sql r)) "#<sqlite3:statement zombie>") p))) ) ; library sqlite3 |