2009-05-22 12:30 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* contrib/hbodbc/odbc.c
    + Copied dummy HB_TCHAR* macros from odbcdd.c, plus
      added dummy HB_TCHAR_CONVFROM().
    % Removed separate branches for Windows platform.
      Please test it on *nix.
    ; TODO: Except one. Currently we have no TCHAR macro 
            which deals with byte strings with lengths.
            Przemek, do you think it's possible to add it?

  * contrib/rddsql/sddodbc/odbcdd.c
    + Added HB_TCHAR_CONVFROM().
This commit is contained in:
Viktor Szakats
2009-05-22 10:30:51 +00:00
parent 8456922787
commit d5440930a7
3 changed files with 30 additions and 59 deletions

View File

@@ -17,6 +17,19 @@
past entries belonging to these authors: Viktor Szakats.
*/
2009-05-22 12:30 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbodbc/odbc.c
+ Copied dummy HB_TCHAR* macros from odbcdd.c, plus
added dummy HB_TCHAR_CONVFROM().
% Removed separate branches for Windows platform.
Please test it on *nix.
; TODO: Except one. Currently we have no TCHAR macro
which deals with byte strings with lengths.
Przemek, do you think it's possible to add it?
* contrib/rddsql/sddodbc/odbcdd.c
+ Added HB_TCHAR_CONVFROM().
2009-05-22 12:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/mpkg_rpm.sh
* harbour/harbour.spec

View File

@@ -79,6 +79,12 @@
#include "hbapi.h"
#if !defined( HB_OS_WIN )
# define HB_TCHAR_CONVTO( s ) ( ( char * ) ( s ) )
# define HB_TCHAR_CONVFROM( s ) ( ( char * ) ( s ) )
# define HB_TCHAR_FREE( s ) HB_SYMBOL_UNUSED( s )
#endif
#if defined( HB_OS_LINUX ) && defined( __WATCOMC__ )
#include "/usr/include/sql.h"
#include "/usr/include/sqlext.h"
@@ -125,10 +131,7 @@ HB_FUNC( SQLDRIVERCONNECT ) /* hDbc, @cConnectString --> nRetCode */
{
SQLSMALLINT wLen;
SQLRETURN ret;
#if defined( HB_OS_WIN ) && defined( UNICODE )
SQLTCHAR * lpStr = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR * lpStr = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR buffer[ 1024 ];
buffer[ 0 ] = '\0';
ret = SQLDriverConnect( ( SQLHDBC ) hb_parptr( 1 ),
@@ -146,29 +149,16 @@ HB_FUNC( SQLDRIVERCONNECT ) /* hDbc, @cConnectString --> nRetCode */
hb_storc( szStr, 3 );
HB_TCHAR_FREE( szStr );
}
#else
SQLTCHAR buffer[ 1024 ];
buffer[ 0 ] = '\0';
ret = SQLDriverConnect( ( SQLHDBC ) hb_parptr( 1 ),
( SQLHWND ) NULL,
( SQLTCHAR * ) hb_parcx( 2 ),
( SQLSMALLINT ) hb_parclen( 2 ),
( SQLTCHAR * ) buffer,
( SQLSMALLINT ) HB_SIZEOFARRAY( buffer ),
( SQLSMALLINT * ) &wLen,
( SQLUSMALLINT ) SQL_DRIVER_COMPLETE );
hb_storc( ( char * ) buffer, 3 );
#endif
hb_retni( ret );
}
HB_FUNC( SQLCONNECT ) /* hDbc, cDSN, cUseName, cPassword --> nRetCode */
{
SQLRETURN ret;
#if defined( HB_OS_WIN ) && defined( UNICODE )
SQLTCHAR * lpDSN = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR * lpUseName = HB_TCHAR_CONVTO( hb_parcx( 3 ) );
SQLTCHAR * lpPassword = HB_TCHAR_CONVTO( hb_parcx( 4 ) );
SQLTCHAR * lpDSN = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR * lpUseName = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 3 ) );
SQLTCHAR * lpPassword = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 4 ) );
ret = SQLConnect( ( SQLHDBC ) hb_parptr( 1 ),
( SQLTCHAR * ) lpDSN,
@@ -181,15 +171,7 @@ HB_FUNC( SQLCONNECT ) /* hDbc, cDSN, cUseName, cPassword --> nRetCode */
HB_TCHAR_FREE( lpDSN );
HB_TCHAR_FREE( lpUseName );
HB_TCHAR_FREE( lpPassword );
#else
ret = SQLConnect( ( SQLHDBC ) hb_parptr( 1 ),
( SQLTCHAR * ) hb_parcx( 2 ),
( SQLSMALLINT ) hb_parclen( 2 ),
( SQLTCHAR * ) hb_parcx( 3 ),
( SQLSMALLINT ) hb_parclen( 3 ),
( SQLTCHAR * ) hb_parcx( 4 ),
( SQLSMALLINT ) hb_parclen( 4 ) );
#endif
hb_retni( ret );
}
@@ -223,17 +205,11 @@ HB_FUNC( SQLFREESTMT ) /* hStmt, nType --> nRetCode */
HB_FUNC( SQLEXECDIRECT ) /* hStmt, cStatement --> nRetCode */
{
#if defined( HB_OS_WIN ) && defined( UNICODE )
SQLTCHAR * lpStr = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR * lpStr = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 2 ) );
hb_retni( SQLExecDirect( ( SQLHSTMT ) hb_parptr( 1 ),
( SQLTCHAR * ) lpStr,
( SQLINTEGER ) hb_parclen( 2 ) ) );
HB_TCHAR_FREE( lpStr );
#else
hb_retni( SQLExecDirect( ( SQLHSTMT ) hb_parptr( 1 ),
( SQLTCHAR * ) hb_parcx( 2 ),
( SQLINTEGER ) hb_parclen( 2 ) ) );
#endif
}
HB_FUNC( SQLFETCH ) /* hStmt --> nRetCode */
@@ -458,24 +434,16 @@ HB_FUNC( SQLERROR ) /* hEnv, hDbc, hStmt, @cErrorClass, @nType, @cErrorMsg */
if( ISBYREF( 4 ) )
{
#if defined( HB_OS_WIN ) && defined( UNICODE )
char * szStr = HB_TCHAR_CONVFROM( buffer );
hb_storc( szStr, 4 );
HB_TCHAR_FREE( szStr );
#else
hb_storc( ( char * ) buffer, 4 );
#endif
}
hb_stornl( ( long ) lError, 5 );
if( ISBYREF( 6 ) )
{
#if defined( HB_OS_WIN ) && defined( UNICODE )
char * szStr = HB_TCHAR_CONVFROM( szErrorMsg );
hb_storc( szStr, 6 );
HB_TCHAR_FREE( szStr );
#else
hb_storc( ( char * ) szErrorMsg, 6 );
#endif
}
}
@@ -592,17 +560,11 @@ HB_FUNC( SQLROLLBACK ) /* hEnv, hDbc */
HB_FUNC( SQLPREPARE ) /* hStmt, cStatement --> nRetCode */
{
#if defined( HB_OS_WIN ) && defined( UNICODE )
SQLTCHAR * lpStr = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
SQLTCHAR * lpStr = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 2 ) );
hb_retni( SQLPrepare( ( SQLHSTMT ) hb_parptr( 1 ),
( SQLTCHAR * ) lpStr,
( SQLINTEGER ) SQL_NTS ) );
HB_TCHAR_FREE( lpStr );
#else
hb_retni( SQLPrepare( ( SQLHSTMT ) hb_parptr( 1 ),
( SQLTCHAR * ) hb_parcx( 2 ),
( SQLINTEGER ) SQL_NTS ) );
#endif
}
HB_FUNC( SQLEXECUTE ) /* hStmt --> nRetCode */
@@ -619,17 +581,12 @@ HB_FUNC( SQLEXECUTESCALAR )
if( result == SQL_SUCCESS || result == SQL_SUCCESS_WITH_INFO )
{
#if defined( HB_OS_WIN ) && defined( UNICODE )
SQLTCHAR * lpStr = HB_TCHAR_CONVTO( hb_parcx( 1 ) );
SQLTCHAR * lpStr = ( SQLTCHAR * ) HB_TCHAR_CONVTO( hb_parcx( 1 ) );
result = SQLExecDirect( ( SQLHSTMT ) hStmt,
( SQLTCHAR * ) lpStr,
( SQLINTEGER ) SQL_NTS );
HB_TCHAR_FREE( lpStr );
#else
result = SQLExecDirect( ( SQLHSTMT ) hStmt,
( SQLTCHAR * ) hb_parcx( 1 ),
( SQLINTEGER ) SQL_NTS );
#endif
if( result == SQL_SUCCESS || result == SQL_SUCCESS_WITH_INFO )
{
result = SQLFetch( ( SQLHSTMT ) hStmt );

View File

@@ -62,6 +62,7 @@
#if !defined( HB_OS_WIN )
# define HB_TCHAR_CONVTO( s ) ( ( char * ) ( s ) )
# define HB_TCHAR_CONVFROM( s ) ( ( char * ) ( s ) )
# define HB_TCHAR_FREE( s ) HB_SYMBOL_UNUSED( s )
#endif