Hi!
 Sorry, I forgot a quoter.quote().

> --- sql.rb      Thu May 31 22:26:59 2001
> +++ /usr/local/lib/ruby/site_ruby/1.6/dbi/sql.rb        Sun Jun 10 04:00:38 2001
> @@ -38,16 +38,24 @@
>    module BasicBind
>  
>      def bind(quoter, sql, args)
> -      boundsql = sql.dup
> -      boundsql.gsub! (/\?\?/, "\001")
> -      args.each { |arg|
> -       if ! boundsql.sub! (/\?/, quoter.quote(arg))
> -         raise "Too many SQL parameters"
> -       end
> -      }
> -      raise "Not enough SQL parameters" if boundsql =~ /\?/
> -      boundsql.gsub!(/\001/, "?")
> -      boundsql
> +      boundsql = sql.gsub(/\?\?/, "\001")
> +
> +      ary = boundsql.split('?')
> +      case ary.size <=> args.size + 1
> +      when -1
> +       raise "Not enough SQL parameters" if args.empty?
> +      when 1
> +       raise "Too many SQL parameters" unless args.empty?
> +      end
> +
> +      boundsql = ''
> +      args.each do |arg|
> +       boundsql.concat(ary.shift)
> +       boundsql.concat(arg)

      boundsql.concat(quoter.quote(arg))

> +      end
> +      boundsql.concat(ary.shift)
> +
> +      boundsql.gsub(/\001/, "?")      
>      end