Page 1 of 1

TSQLStoredProc with ftWideString parameter

Posted: Wed 18 Nov 2009 14:57
Hi,
I'm using embarcadero c++buider 2010 with oracle 10g and DEVARTORACLE It's work fine. But Procedures don't retrieve UTF characters.

SQLStoredProc1->StoredProcName = "Pkg_CCEQ.pr_Read";
SQLStoredProc1->Params->Clear();
SQLStoredProc1->Params->CreateParam(ftWideString,"p_Id_customer",ptInput);
SQLStoredProc1->Params->Items[0]->Size= 250;
SQLStoredProc1->Params->CreateParam(ftWideString,"p_name",ptOutput);
SQLStoredProc1->Params->Items[1]->Size= 250;
SQLStoredProc1->Params->CreateParam(ftWideString,"p_surname",ptOutput);
SQLStoredProc1->Params->Items[2]->Size= 250;
SQLStoredProc1->Params->CreateParam(ftWideString,"p_error",ptOutput);

SQLStoredProc1->Params->Items[0]->Value = 104;
SQLStoredProc1->ExecProc();
edNombre->Text = SQLStoredProc1->Params->Items[1]->AsWideString;


the procedure called is :

PROCEDURE pr_Read (
p_Id_customer IN CEQ_CUSTOMERS.ID_CUSTOMER%TYPE,
p_name OUT NVARCHAR2,
p_surname OUT CCEQ_CUSTOMERS.SURNAME%TYPE,
p_error OUT NVARCHAR2
)
IS
BEGIN
p_error := '0'; SELECT NAME, SURNAME INTO p_name, p_surname FROM CCEQ_CUSTOMERS WHERE ID_CUSTOMER =p_Id_customer;
EXCEPTION
WHEN NO_DATA_FOUND THEN
p_error := '1';
WHEN OTHERS THEN
p_error := '2';
RAISE;
END pr_Read;

Posted: Thu 19 Nov 2009 11:06
by Plash
We have fixed this problem. The fix will be included in the next build of DbxOda.

Note: dbExpress does not allow to change DataType for parameters of TSQLStoredProc.