caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Christophe TROESTLER <debian00@tiscali.be>
To: Damien.Pous@ens-lyon.fr
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Dbi: proposal #1
Date: Fri, 13 Jun 2003 16:26:26 +0200 (CEST)	[thread overview]
Message-ID: <20030613.162626.79289918.debian00@tiscali.be> (raw)
In-Reply-To: <1055491953.7515.13.camel@lamppc21.epfl.ch>

On 13 Jun 2003, Damien Pous <Damien.Pous@ens-lyon.fr> wrote:
> 
> with the CVS Printf.kprintf, you can do something like
> [...]
> let dbh = new dbh
> let q1 = dbh#prepare "toto %d"
> let q2 = dbh#prepare "titi %s %f"
> let a1 = q1#execute 1000 
> let a2 = q2#execute "arf" 3.3

Well, this has several drawbacks.  First, the strings are not properly
escaped w.r.t. the database rules.  For example, you must write

INSERT INTO table(a,b) VALUES ('a\'b', NULL)

but with kprintf "a'b" will not be properly escaped.  (This is a
common mistake people do with the PHP approach.)  There is also no
nice way to handle NULL values, to support transparently all SQL92
types (what about DATE, TIMESTAMP, DECIMAL,...) nor to add new types
(want to decode Mysql sets; want to store closures?).  No optimization
of the query is possible.  Finally, this syntax is not compatible with
standard prepared queries (prepared queries are even mandatory for
Oracle I've been told) -- if the database supports prepared queries,
the DB mechanism should be used.

Cheers,
ChriS

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  parent reply	other threads:[~2003-06-13 14:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-10 20:10 Christophe TROESTLER
2003-06-11  2:06 ` Nicolas Cannasse
2003-06-12 18:50   ` Christophe TROESTLER
2003-06-11 16:13 ` Richard Jones
2003-06-12 19:07   ` Christophe TROESTLER
2003-06-13  8:12     ` Damien Pous
2003-06-13 11:01       ` Richard Jones
2003-06-13 14:26       ` Christophe TROESTLER [this message]
2003-06-13 11:05   ` Richard Jones
2003-06-13 11:49 Benjamin Geer
2003-06-13 13:45 Benjamin Geer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030613.162626.79289918.debian00@tiscali.be \
    --to=debian00@tiscali.be \
    --cc=Damien.Pous@ens-lyon.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).