[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16373] Re: [ANN] Ruby/DBI 0.0.5

From: Masatoshi SEKI <m_seki@...>
Date: 2001-06-09 19:04:10 UTC
List: ruby-talk #16373
Hi,

> Here's a simple example showing how to insert 100 rows into a database:
>
> require 'dbi'
> 
> DBI.connect('dbi:Pg:michael', 'michael', 'michael', 'AutoCommit' => false) do |dbh|
>   dbh.prepare("INSERT INTO test VALUES (?,?)") do |sth|
>     for i in 1..100 do
>       sth.execute(i, "Line #{i}")
>     end
>   end
> end


I tried Ruby/DBI 0.0.5 with Pg, But my script made a minnor truble...

--------------- 
require 'dbi'

DBI.connect("dbi:Pg:#{ARGV[0]}", ARGV[1]) do |dbh|

  begin
    dbh.do("drop table mytest")
  rescue DBI::ProgrammingError
  end
  
  dbh.do("create table mytest (a int, b text)")
  
  sth = dbh.prepare("INSERT INTO MYTEST VALUES (?, ?)")
  
  10.times do |i|
    sth.execute(i.to_s, dbh.quote("Line #{i}?")) # <-- "?" contains!!
  end
end
---------------
% ruby t.rb sekitest mas
/usr/local/lib/ruby/site_ruby/1.6/DBD/Pg/Pg.rb:209:in `execute': Not enough SQL parameters (DBI::ProgrammingError)
        from /usr/local/lib/ruby/site_ruby/1.6/dbi/dbi.rb:576:in `execute'
        from t.rb:15
        from t.rb:14:in `times'
        from t.rb:14
        from t.rb:3:in `connect'
        from /usr/local/lib/ruby/site_ruby/1.6/dbi/dbi.rb:255:in `connect'
        from t.rb:3
---------------


I changed the lib/dbi/sql.rb. How about it?


--- 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)
+      end
+      boundsql.concat(ary.shift)
+
+      boundsql.gsub(/\001/, "?")      
     end
 

In This Thread