New tds module does not handle bindings
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4826
Reported by Marcus Wellhardh wellhard@roxen.com
The new tds database module does not work with bindings.
Code, using "tds://test:test@burns/sparq" as connect string:
void test_char(Sql.Sql db)
{
catch {
db->query("DROP TABLE dbtest");
};
db->query("CREATE TABLE dbtest ("
" ID INT, "
" MY_CHAR CHAR(32) "
")");
db->query("INSERT INTO dbtest (ID, MY_CHAR) VALUES "
"(1, %s)", "abcdefghijklmnopqrstuvxyz");
}
Backtrace:
15: :BURNS:1 Line 1: Incorrect syntax near ':'.
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:186:
Sql.tds()->tds_error("15: :BURNS:1 Line 1: Incorrect syntax near ':'.\n",1
5,"","BURNS",1,"Line 1: Incorrect syntax near ':'.")
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:677:
Sql.tds()->Connection()->process_msg(Sql.tds()->Connection()->InPacket(),1
70)
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:921:
Sql.tds()->Connection()->process_default_tokens(@0=Sql.tds()->Connection()
->InPacket(),170)
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:1043:
Sql.tds()->Connection()->process_result_tokens(@0)
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:1674:
Sql.tds()->big_query()->create(Sql.tds()->compile_query())
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/tds.pike:37:
Sql.tds()->big_query()
/tmp/dbtest/roxen/server-5.0.352/pike/lib/pike/modules/Sql.pmod/Sql.pike:535:
Sql.Sql()->query("INSERT INTO dbtest (ID, MY_CHAR) VALUES (2, :arg0)","abc
defghijklmnopqrstuvxyz")
/home/wellhard/projects/dbtest/dbtest.pike:78: /main()->test_char(Sql.Sql())
/home/wellhard/projects/dbtest/dbtest.pike:411: /main()->main()