Hi,
[email protected] wrote:
+ contrib/rddsql/sddoci/sddoci.c
+ contrib/rddsql/sddsq3/sddsq3.c
Thank You, for you new SDD. I've started Oracle development some time
ago, but never fixed because lack of time, motivation (I do not need it
for my own projects), and test environment. I see you current code is
much more complete, than my. It also uses some more nice API than I was
trying to use. I was using OCI*() functions (not OCI_*()), i.e.
OCIHandleAlloc() was used to allocate server, context, environment,
error, and session handles. It seemed very stange...
BTW, in the OCI*() API, transaction management is done using API
functions, but not 'BEGIN', 'ROLLBACK', 'COMMIT' queries (like in
MySql). If this is also true for OCI_*() API, perhaps we need to SDD and
introduce new methods. For MySql and similar "query based transactions"
we need to do queries on transaction method calls.
; TOFIX: To Mindaugas: Current SDD architecture will crash with GPF
if dbUseArea() is attempted after a failed RDDI_CONNECT
call. You can check it f.e. with sddodbc's test1.prg, by
modifying test.mdb to test_.mdb, and simply run it.
I've tried to, but I guess you've already fixed it. But I see a lot of
"?" characters in test1.prg table browse (in BCC). Something wrong with
UNICODE support, though I do not see error code. Maybe some hidden
#define UNICODE exists...
!!! This "&& 0" is dangerous, not compatible with next #if defined
#if defined( UNICODE ) && 0
iTargetType = SQL_C_WCHAR;
iLen *= 2;
#else
iTargetType = SQL_C_CHAR;
#endif
val = ( SQLPOINTER * ) hb_xgrab( iLen );
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui,
iTargetType, val, iLen, &iLen ) ) )
{
if( iLen > 0 )
{
#if defined( UNICODE )
iLen /= 2;
#endif
pItem = O_HB_ITEMPUTSTRLEN( NULL, ( O_HB_CHAR * )
val, ( HB_SIZE ) iLen );
}
}
hb_xfree( val );
Regards,
Mindaugas
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour