X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=interfaces%2Fmysql%2Fmysql-sql.cl;h=8d8f243cfb9199c25b6cc443ac786706a96c53fa;hb=e596bda48686fd7df4fe7cb2740cd2144a22fb79;hp=804c5dc737dc96036c1df589227ba6a8fa259c50;hpb=01e78fad2d9c4c18f11ec032c80afa59212ba109;p=clsql.git diff --git a/interfaces/mysql/mysql-sql.cl b/interfaces/mysql/mysql-sql.cl index 804c5dc..8d8f243 100644 --- a/interfaces/mysql/mysql-sql.cl +++ b/interfaces/mysql/mysql-sql.cl @@ -8,7 +8,7 @@ ;;;; Original code by Pierre R. Mai ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: mysql-sql.cl,v 1.4 2002/03/24 18:08:27 kevin Exp $ +;;;; $Id: mysql-sql.cl,v 1.6 2002/03/24 22:25:51 kevin Exp $ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai @@ -28,6 +28,9 @@ ;;;; for MYSQL structure. This will make the code more robust in ;;;; the event that MySQL library changes the size of the mysql-mysql ;;;; structure. +;;;; +;;;; Mar 2002 +;;;; Added field types (defpackage :clsql-mysql (:use :common-lisp :clsql-sys :mysql) @@ -98,7 +101,7 @@ (defstruct mysql-result-set (res-ptr (uffi:make-null-pointer 'mysql-mysql-res) :type mysql-mysql-res-ptr-def) - (field-types nil :type cons) + (field-types nil) (full-set nil :type boolean)) (defmethod database-dump-result-set (result-set (database mysql-database)) @@ -134,7 +137,8 @@ -(defmethod database-query (query-expression (database mysql-database) field-types) +(defmethod database-query (query-expression (database mysql-database) + field-types) (with-slots (mysql-ptr) database (uffi:with-cstring (query-native query-expression) (if (zerop (mysql-query mysql-ptr query-native)) @@ -146,7 +150,7 @@ collect (loop for i from 0 below (mysql-num-fields res-ptr) collect - (uffi:convert-from-cstring + (uffi:convert-from-foreign-string (uffi:deref-array row 'mysql-row i)))) (mysql-free-result res-ptr)) (error 'clsql-sql-error @@ -173,7 +177,8 @@ (declare (type mysql-mysql-res-ptr-def res-ptr)) (if (not (uffi:null-pointer-p res-ptr)) (if full-set - (values (make-mysql-result-set :res-ptr res-ptr :full-set t) + (values (make-mysql-result-set :res-ptr res-ptr :full-set t + :field-types field-types) (mysql-num-fields res-ptr) (mysql-num-rows res-ptr)) (values (make-mysql-result-set :res-ptr res-ptr)