Param binding in ODAC 6.90.0.55
Posted: Wed 27 Jan 2010 20:59
ODAC 6.90.0.55, bcb 2009, UseUnicode=true, OCIUnicode = true, Direct Mode, ORACLE 10.2.0.1, Charset=UTF-8
DDL script
We observed a number of bugs.
BUG #1. The following code worked in version 6.90.0.52 but fails on 6.90.0.55:
BUG #2. If instead of Null() I provide a value for :folder_id
Then it goes through, but in the database I get only garbage
These bugs are critical. Thank you for a quick reply.
Alexander
DDL script
Code: Select all
CREATE TABLE bt_bugs_filters (
id NUMBER NOT NULL PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
folder_id NUMBER,
settings VARCHAR2(150)
)BUG #1. The following code worked in version 6.90.0.52 but fails on 6.90.0.55:
Code: Select all
void __fastcall TForm1::bindNullBTNClick(TObject *Sender)
{
boost::scoped_ptr session(new TOraSession(0));
session->Options->UseUnicode = true;
session->Options->Net = true;
session->Server = "oraxp:1521:pvs";
session->Username = "pvs_c";
session->Password = "ic1";
session->ConnectMode = cmNormal;
session->Connect();
boost::scoped_ptr query(new TOraQuery(0));
query->Session = session.get();
// DELETE
query->SQL->Text = "delete from bt_bugs_filters where id = 111";
query->ExecSQL();
// INSERT
query->SQL->Text = "insert into bt_bugs_filters (id,name,folder_id) values (:id, :name, :folder_id)";
query->Prepare();
query->Params->ParamByName("id")->Value = 111.0;
query->Params->ParamByName("name")->Value = UnicodeString("hello");
query->Params->ParamByName("folder_id")->Value = Null();
query->ExecSQL(); // Commit();
}Code: Select all
query->Params->ParamByName("folder_id")->Value = 220.0;Code: Select all
SQL> SELECT * FROM bt_bugs_filters
ID NAME FOLDER_ID SETTINGS
---------------------- ------------------------------ ---------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------
111 � -0.00...004294966589
Alexander