diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c0caf640ee..51121e489b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,29 @@ The license applies to all entries newer than 2009-04-28. */ +2010-06-26 13:14 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + + contrib/makefile.prg + + Added new control script which is meant to orchestrate + building contribs, both libs and utils, with clean/install + support and option for extra lib/bin addons. It's also + possible to build dynamic version of the libs. + + * examples/rddado/adordd.prg + * Cleanups. + + * examples/rddado/rddado.hbp + + Added -w3 option. + + * contrib/gtalleg/gtallegs/Makefile + * contrib/gtalleg/gtallegs.hbp + ! Disabled static build for everything except msvc and pocc. + + * contrib/gtalleg/gtallegs.hbc + ! Added libdir for static lib. + + + contrib/gtalleg/tests/test.prg + + Added simple test app. + 2010-06-26 10:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * src/rtl/gtwvt/gtwvt.c + SETMODE() will now support automatic resizing of font to make diff --git a/harbour/contrib/gtalleg/gtallegs.hbc b/harbour/contrib/gtalleg/gtallegs.hbc index 5106dc239c..c6fad0b7fb 100644 --- a/harbour/contrib/gtalleg/gtallegs.hbc +++ b/harbour/contrib/gtalleg/gtallegs.hbc @@ -4,5 +4,6 @@ libs=${hb_name} +{win}libpaths=${HB_WITH_ALLEGRO}/../lib {win}libs=alleg_s d3d9 dsound {linux}ldflags="`allegro-config --static 2>/dev/null`" diff --git a/harbour/contrib/gtalleg/gtallegs.hbp b/harbour/contrib/gtalleg/gtallegs.hbp index 0cea961c1c..81d40ff46d 100644 --- a/harbour/contrib/gtalleg/gtallegs.hbp +++ b/harbour/contrib/gtalleg/gtallegs.hbp @@ -4,6 +4,8 @@ gtalleg.hbp +-stop{!msvc&!pocc} + -o${hb_name} -workdir=${hb_work}/${hb_plat}/${hb_comp}/${hb_name} diff --git a/harbour/contrib/gtalleg/gtallegs/Makefile b/harbour/contrib/gtalleg/gtallegs/Makefile index e1d490a320..9e800f64cb 100644 --- a/harbour/contrib/gtalleg/gtallegs/Makefile +++ b/harbour/contrib/gtalleg/gtallegs/Makefile @@ -18,7 +18,7 @@ _DET_DSP_NAME := allegro _DET_VAR_INC_ := HB_INC_ALLEGRO _DET_VAR_HAS_ := HB_HAS_ALLEGRO _DET_FLT_PLAT := -_DET_FLT_COMP := !pocc !pocc64 !poccarm !xcc !dmc !watcom !mingwarm +_DET_FLT_COMP := msvc pocc _DET_INC_DEFP := /usr/include /opt/local/include _DET_INC_HEAD := /allegro.h include $(TOP)$(ROOT)config/detfun.mk diff --git a/harbour/contrib/gtalleg/tests/test.prg b/harbour/contrib/gtalleg/tests/test.prg new file mode 100644 index 0000000000..704e9ccf0b --- /dev/null +++ b/harbour/contrib/gtalleg/tests/test.prg @@ -0,0 +1,13 @@ +/* + * $Id$ + */ + +REQUEST HB_GT_ALLEG_DEFAULT +ANNOUNCE HB_GTSYS + +PROCEDURE Main() + + CLS + ALERT( "Hello world!" ) + + RETURN diff --git a/harbour/contrib/makefile.prg b/harbour/contrib/makefile.prg new file mode 100644 index 0000000000..97613b478c --- /dev/null +++ b/harbour/contrib/makefile.prg @@ -0,0 +1,285 @@ +/* + * $Id$ + */ + +/* + * Copyright 2009 Viktor Szakats (harbour.01 syenar.hu) + * See COPYING for licensing terms. + */ + +/* TODO: + 1. error handling / reporting / feedback + 2. copy headers and other stuff (hbide) + 3. add .dll generation for contrib libs + 4. first do all the 'clean's +*/ + +#pragma warninglevel=3 + +/* TOFIX: Ugly hack to avoid #include "directry.ch" */ +#define F_NAME 1 /* File name */ +#define F_ATTR 5 /* File attribute */ + +#define _PS_ hb_osPathSeparator() + +STATIC s_lTest + +PROCEDURE Main( ... ) + + LOCAL cBase := "contrib/" + + LOCAL aLibs := {; + "gtwvg/gtwvg.hbp" ,; + "hbblink/hbblink.hbp" ,; + "hbbz2/hbbz2.hbp" ,; + "hbclipsm/hbclipsm.hbp" ,; + "hbcomm/hbcomm.hbp" ,; + "hbct/hbct.hbp" ,; + "hbfoxpro/hbfoxpro.hbp" ,; + "hbfship/hbfship.hbp" ,; + "hbgt/hbgt.hbp" ,; + "hbmemio/hbmemio.hbp" ,; + "hbmisc/hbmisc.hbp" ,; + "hbmzip/hbmzip.hbp" ,; + "hbnetio/hbnetio.hbp" ,; + "hbnf/hbnf.hbp" ,; + "hbodbc/hbodbc.hbp" ,; + "hbsms/hbsms.hbp" ,; + "hbsqlit3/hbsqlit3.hbp" ,; + "hbtip/hbtip.hbp" ,; + "hbtip/hbtipssl.hbp" ,; + "hbtpathy/hbtpathy.hbp" ,; + "hbwin/hbwin.hbp" ,; + "hbxpp/hbxpp.hbp" ,; + "hbziparc/hbziparc.hbp" ,; + "rddbmcdx/hbbmcdx.hbp" ,; + "xhb/xhb.hbp" } + + LOCAL aLibDeps := {; + "gtalleg/gtalleg.hbp" ,; + "gtalleg/gtallegs.hbp" ,; + "hbblat/hbblat.hbp" ,; + "hbcairo/hbcairo.hbp" ,; + "hbcups/hbcups.hbp" ,; + "hbcurl/hbcurl.hbp" ,; + "hbcurl/hbcurls.hbp" ,; + "hbfbird/hbfbird.hbp" ,; + "hbfimage/hbfimage.hbp" ,; + "hbgd/hbgd.hbp" ,; + "hbhpdf/hbhpdf.hbp" ,; + "hbmysql/hbmysql.hbp" ,; + "hbpgsql/hbpgsql.hbp" ,; + "hbqt/hbqt.hbp" ,; + "hbqt/hbqtcore.hbp" ,; + "hbqt/hbqtcores.hbp" ,; + "hbqt/hbqtgui.hbp" ,; + "hbqt/hbqtguis.hbp" ,; + "hbqt/hbqtnetwork.hbp" ,; + "hbqt/hbqtnetworks.hbp" ,; + "hbqt/hbqts.hbp" ,; + "hbssl/hbssl.hbp" ,; + "hbssl/hbssls.hbp" ,; + "hbxbp/hbxbp.hbp" ,; + "rddads/rddads.hbp" ,; + "rddsql/rddsql.hbp" ,; + "sddfb/sddfb.hbp" ,; + "sddmy/sddmy.hbp" ,; + "sddoci/sddoci.hbp" ,; + "sddodbc/sddodbc.hbp" ,; + "sddpg/sddpg.hbp" ,; + "sddsqlt3/sddsqlt3.hbp" } + + LOCAL aImpLibs := {; + "gtalleg/gtalleg.hbi" ,; + "hbblat/hbblat.hbi" ,; + "hbcairo/hbcairo.hbi" ,; + "hbcurl/hbcurl.hbi" ,; + "hbfbird/hbfbird.hbi" ,; + "hbfimage/hbfimage.hbi" ,; + "hbgd/hbgd.hbi" ,; + "hbhpdf/hbhpdf.hbi" ,; + "hbmysql/hbmysql.hbi" ,; + "hbpgsql/hbpgsql.hbi" ,; + "hbssl/hbssl.hbi" ,; + "rddads/rddads.hbi" ,; + "sddfb/sddfb.hbi" ,; + "sddmy/sddmy.hbi" ,; + "sddoci/sddoci.hbi" ,; + "sddpg/sddpg.hbi" } + + LOCAL aUtils := {; + "hbnetio/utils/netiosrv.hbp" ,; + "hbqt/utils/hbqtui.hbp" ,; + "hbide/hbide.hbp" } + + LOCAL aAll := {; + aImpLibs ,; + aLibs ,; + aLibDeps ,; + aUtils,; + hb_ATokens( GetEnv( "HB_ADDONS_LIB" ),, .T. ),; + hb_ATokens( GetEnv( "HB_ADDONS_BIN" ),, .T. ) } + + LOCAL aAllType := {; + "implib" ,; + "lib" ,; + "lib" ,; + "bin" ,; + "lib" ,; + "bin" } + + LOCAL chunk + LOCAL cProject + LOCAL cProjectDir + LOCAL cType + LOCAL cInstallDirVar + LOCAL cTargetDir + + LOCAL cOptions := "" + + LOCAL cFilter := GetEnv( "HB_CONTRIBLIBS" ) + LOCAL aFilter + LOCAL lFilterNegative + + LOCAL aParams := hb_AParams() + LOCAL tmp + + IF Empty( GetEnv( "HB_PLATFORM" ) ) .OR. ; + Empty( GetEnv( "HB_COMPILER" ) ) .OR. ; + Empty( GetEnv( "HB_HOST_BIN_DIR" ) ) + ErrorLevel( 9 ) + RETURN + ENDIF + + IF cFilter == "no" + ErrorLevel( 0 ) + RETURN + ENDIF + + /* Converting build options to hbmk2 options */ + + IF GetEnv( "HB_BUILD_MODE" ) == "cpp" + cOptions += " -cpp=yes" + ELSEIF GetEnv( "HB_BUILD_MODE" ) == "c" + cOptions += " -cpp=no" + ENDIF + IF GetEnv( "HB_BUILD_DEBUG" ) == "yes" + cOptions += " -debug" + ENDIF + + FOR EACH tmp IN aParams + tmp := Lower( tmp ) + NEXT + + s_lTest := AScan( aParams, "test" ) > 0 + + /* Parse filter */ + + aFilter := iif( Empty( cFilter ), {}, hb_ATokens( cFilter,, .T. ) ) + IF Len( aFilter ) >= 1 .AND. aFilter[ 1 ] == "no" + hb_ADel( aFilter, 1, .T. ) + lFilterNegative := .T. + ELSE + lFilterNegative := .F. + ENDIF + + /* Start building */ + + FOR EACH chunk, cType IN aAll, aAllType + FOR EACH cProject IN chunk + + IF ! Empty( cProject ) + + cProject := StrTran( cProject, "\", "/" ) + + IF ( tmp := At( "/", cProject ) ) > 0 + cProjectDir := Left( cProject, tmp - 1 ) + ELSE + cProjectDir := "" + ENDIF + + IF Empty( aFilter ) .OR. ; + iif( lFilterNegative,; + AScan( aFilter, {| tmp | tmp == cProjectDir } ) == 0,; + AScan( aFilter, {| tmp | tmp == cProjectDir } ) > 0 ) + + SWITCH cType + CASE "lib" + CASE "implib" + cTargetDir := "lib/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + iif( Empty( GetEnv( "HB_BUILD_NAME" ) ), "", "/" + GetEnv( "HB_BUILD_NAME" ) ) + cInstallDirVar := "HB_LIB_INSTALL_" + EXIT + CASE "bin" + cTargetDir := "bin/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + iif( Empty( GetEnv( "HB_BUILD_NAME" ) ), "", "/" + GetEnv( "HB_BUILD_NAME" ) ) + cInstallDirVar := "HB_BIN_INSTALL_" + EXIT + ENDSWITCH + + IF AScan( aParams, "clean" ) > 0 + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -clean", .F. ) + ENDIF + IF AScan( aParams, "install" ) > 0 .AND. ; + ! Empty( GetEnv( cInstallDirVar ) ) .AND. ; + ( ! ( cType == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" ) + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}", .F. ) + ELSE + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -inc", .F. ) + ENDIF + + IF cType == "lib" .AND. GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" + IF AScan( aParams, "clean" ) > 0 + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -clean", .T. ) + ENDIF + IF AScan( aParams, "install" ) > 0 .AND. ; + ! Empty( GetEnv( cInstallDirVar ) ) .AND. ; + ( ! ( cType == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" ) + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}", .T. ) + ELSE + call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -inc", .T. ) + ENDIF + ENDIF + ELSE + /* OutStd( hb_StrFormat( "'%s' project skipped" + hb_osNewLine(), cProject ) ) */ + ENDIF + ENDIF + NEXT + NEXT + + ErrorLevel( 0 ) + + RETURN + +STATIC FUNCTION call_hbmk2( cProject, cTargetDir, cOptions, lDyn ) + LOCAL nErrorLevel + + LOCAL cDir, cName + + hb_FNameSplit( cProject, @cDir, @cName ) + + /* TOFIX: Add -implib option. It collides with static lib so needs to be resolved. */ + + nErrorLevel := mk_hb_processRun( GetEnv( "HB_HOST_BIN_DIR" ) + _PS_ + "hbmk2" +; + " -quiet -lang=en -q0" + cOptions +; + " " + cProject +; + iif( lDyn, " -hbdyn -nohblib- " + FN_ExtSet( cProject, ".hbc" ), "" ) +; + " -workdir=" + cTargetDir + "/${hb_work}/" + cName + iif( lDyn, "_dyn", "" ) +; + " -o" + cTargetDir + "/" ) + IF nErrorLevel != 0 + OutStd( hb_StrFormat( "'%s' returned status: %s" + hb_osNewLine(), cProject, hb_ntos( nErrorLevel ) ) ) + RETURN .F. + ENDIF + + RETURN .T. + +STATIC FUNCTION mk_hb_processRun( cCommand ) + + OutStd( cCommand + hb_osNewLine() ) + + RETURN iif( s_lTest, 0, hb_processRun( cCommand ) ) + +STATIC FUNCTION FN_ExtSet( cFileName, cExt ) + LOCAL cDir, cName + + hb_FNameSplit( cFileName, @cDir, @cName ) + + RETURN hb_FNameMerge( cDir, cName, cExt ) diff --git a/harbour/examples/rddado/adordd.prg b/harbour/examples/rddado/adordd.prg index 01a2adeb30..80ed3fd1ef 100644 --- a/harbour/examples/rddado/adordd.prg +++ b/harbour/examples/rddado/adordd.prg @@ -150,37 +150,37 @@ STATIC FUNCTION ADO_CREATE( nWA, aOpenInfo ) LOCAL oError, n DO CASE - CASE Lower( Right( cDataBase, 4 ) ) == ".mdb" - IF ! hb_FileExists( cDataBase ) - oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase ) - ENDIF - oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase ) + CASE Lower( Right( cDataBase, 4 ) ) == ".mdb" + IF ! hb_FileExists( cDataBase ) + oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase ) + ENDIF + oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase ) - CASE Lower( Right( cDataBase, 4 ) ) == ".xls" - IF ! hb_FileExists( cDataBase ) - oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False" ) - ENDIF - oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False") + CASE Lower( Right( cDataBase, 4 ) ) == ".xls" + IF ! hb_FileExists( cDataBase ) + oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False" ) + ENDIF + oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False") - CASE Lower( Right( cDataBase, 3 ) ) == ".db" - IF ! hb_FileExists( cDataBase ) - oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Paradox 3.x';" ) - ENDIF - oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Paradox 3.x';" ) + CASE Lower( Right( cDataBase, 3 ) ) == ".db" + IF ! hb_FileExists( cDataBase ) + oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Paradox 3.x';" ) + ENDIF + oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase + ";Extended Properties='Paradox 3.x';" ) - CASE Lower( Right( cDataBase, 4 ) ) == ".fdb" - IF ! hb_FileExists( cDataBase ) - oCatalog:Create( "Driver=Firebird/InterBase(r) driver;Uid=" + cUserName + ";Pwd=" + cPassword + ";DbName=" + cDataBase + ";" ) - ENDIF - oConnection:Open( "Driver=Firebird/InterBase(r) driver;Uid=" + cUserName + ";Pwd=" + cPassword + ";DbName=" + cDataBase + ";" ) - oConnection:CursorLocation := adUseClient + CASE Lower( Right( cDataBase, 4 ) ) == ".fdb" + IF ! hb_FileExists( cDataBase ) + oCatalog:Create( "Driver=Firebird/InterBase(r) driver;Uid=" + cUserName + ";Pwd=" + cPassword + ";DbName=" + cDataBase + ";" ) + ENDIF + oConnection:Open( "Driver=Firebird/InterBase(r) driver;Uid=" + cUserName + ";Pwd=" + cPassword + ";DbName=" + cDataBase + ";" ) + oConnection:CursorLocation := adUseClient - CASE Upper( cDbEngine ) == "MYSQL" - oConnection:Open( "DRIVER={MySQL ODBC 3.51 Driver};" + ; - "server=" + cServer + ; - ";database=" + cDataBase + ; - ";uid=" + cUserName + ; - ";pwd=" + cPassword ) + CASE Upper( cDbEngine ) == "MYSQL" + oConnection:Open( "DRIVER={MySQL ODBC 3.51 Driver};" + ; + "server=" + cServer + ; + ";database=" + cDataBase + ; + ";uid=" + cUserName + ; + ";pwd=" + cPassword ) ENDCASE @@ -209,7 +209,7 @@ STATIC FUNCTION ADO_CREATE( nWA, aOpenInfo ) NEXT UR_SUPER_ERROR( nWA, oError ) - END + END SEQUENCE oConnection:Close() @@ -223,45 +223,45 @@ STATIC FUNCTION ADO_CREATEFIELDS( nWA, aStruct ) aWAData[ WA_SQLSTRUCT ] := "" FOR n := 1 to Len( aStruct ) - IF n > 1 - aWAData[ WA_SQLSTRUCT ] += ", " - ENDIF - aWAData[ WA_SQLSTRUCT ] += "[" + aStruct[ n ][ DBS_NAME ] + "]" - DO CASE - CASE aStruct[ n ][ DBS_TYPE ] $ "C,Character" - aWAData[ WA_SQLSTRUCT ] += " CHAR(" + AllTrim( Str( aStruct[ n ][ DBS_LEN ] ) ) + ") NULL" + IF n > 1 + aWAData[ WA_SQLSTRUCT ] += ", " + ENDIF + aWAData[ WA_SQLSTRUCT ] += "[" + aStruct[ n ][ DBS_NAME ] + "]" + DO CASE + CASE aStruct[ n ][ DBS_TYPE ] $ "C,Character" + aWAData[ WA_SQLSTRUCT ] += " CHAR(" + hb_ntos( aStruct[ n ][ DBS_LEN ] ) + ") NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "V" - aWAData[ WA_SQLSTRUCT ] += " VARCHAR(" + AllTrim( Str( aStruct[ n ][ DBS_LEN ] ) ) + ") NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "V" + aWAData[ WA_SQLSTRUCT ] += " VARCHAR(" + hb_ntos( aStruct[ n ][ DBS_LEN ] ) + ") NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "B" - aWAData[ WA_SQLSTRUCT ] += " DOUBLE NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "B" + aWAData[ WA_SQLSTRUCT ] += " DOUBLE NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "Y" - aWAData[ WA_SQLSTRUCT ] += " SMALLINT NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "Y" + aWAData[ WA_SQLSTRUCT ] += " SMALLINT NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "I" - aWAData[ WA_SQLSTRUCT ] += " MEDIUMINT NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "I" + aWAData[ WA_SQLSTRUCT ] += " MEDIUMINT NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "D" - aWAData[ WA_SQLSTRUCT ] += " DATE NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "D" + aWAData[ WA_SQLSTRUCT ] += " DATE NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "T" - aWAData[ WA_SQLSTRUCT ] += " DATETIME NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "T" + aWAData[ WA_SQLSTRUCT ] += " DATETIME NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "@" - aWAData[ WA_SQLSTRUCT ] += " TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP" + CASE aStruct[ n ][ DBS_TYPE ] == "@" + aWAData[ WA_SQLSTRUCT ] += " TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP" - CASE aStruct[ n ][ DBS_TYPE ] == "M" - aWAData[ WA_SQLSTRUCT ] += " TEXT NULL" + CASE aStruct[ n ][ DBS_TYPE ] == "M" + aWAData[ WA_SQLSTRUCT ] += " TEXT NULL" - CASE aStruct[ n ][ DBS_TYPE ] == "N" - aWAData[ WA_SQLSTRUCT ] += " NUMERIC(" + AllTrim( Str( aStruct[ n ][ DBS_LEN ] ) ) + ")" + CASE aStruct[ n ][ DBS_TYPE ] == "N" + aWAData[ WA_SQLSTRUCT ] += " NUMERIC(" + hb_ntos( aStruct[ n ][ DBS_LEN ] ) + ")" - CASE aStruct[ n ][ DBS_TYPE ] == "L" - aWAData[ WA_SQLSTRUCT ] += " LOGICAL" - ENDCASE - NEXT + CASE aStruct[ n ][ DBS_TYPE ] == "L" + aWAData[ WA_SQLSTRUCT ] += " LOGICAL" + ENDCASE + NEXT RETURN HB_SUCCESS @@ -271,7 +271,7 @@ STATIC FUNCTION ADO_OPEN( nWA, aOpenInfo ) LOCAL cName, aField, oError, nResult LOCAL oRecordSet, nTotalFields, n - // When there is no ALIAS we will create new one using file name + /* When there is no ALIAS we will create new one using file name */ IF Empty( aOpenInfo[ UR_OI_ALIAS ] ) HB_FNAMESPLIT( aOpenInfo[ UR_OI_NAME ], , @cName ) aOpenInfo[ UR_OI_ALIAS ] := cName @@ -289,54 +289,55 @@ STATIC FUNCTION ADO_OPEN( nWA, aOpenInfo ) DO CASE CASE Lower( Right( aOpenInfo[ UR_OI_NAME ], 4 ) ) == ".mdb" - IF Empty( aWAData[ WA_PASSWORD ] ) - aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] ) - ELSE - aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Jet OLEDB:Database Password=" + AllTrim( aWAData[ WA_PASSWORD ] ) ) - ENDIF + IF Empty( aWAData[ WA_PASSWORD ] ) + aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] ) + ELSE + aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Jet OLEDB:Database Password=" + AllTrim( aWAData[ WA_PASSWORD ] ) ) + ENDIF CASE Lower( Right( aOpenInfo[ UR_OI_NAME ], 4 ) ) == ".xls" - aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False" ) + aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties='Excel 8.0;HDR=YES';Persist Security Info=False" ) CASE Lower( Right( aOpenInfo[ UR_OI_NAME ], 4 ) ) == ".dbf" - aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties=dBASE IV;User ID=Admin;Password=;" ) + aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties=dBASE IV;User ID=Admin;Password=;" ) CASE Lower( Right( aOpenInfo[ UR_OI_NAME ], 3 ) ) == ".db" - aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties='Paradox 3.x';" ) + aWAData[ WA_CONNECTION ]:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + aOpenInfo[ UR_OI_NAME ] + ";Extended Properties='Paradox 3.x';" ) CASE aWAData[ WA_ENGINE ] == "MYSQL" - aWAData[ WA_CONNECTION ]:Open( "DRIVER={MySQL ODBC 3.51 Driver};" + ; - "server=" + aWAData[ WA_SERVER ] + ; - ";database=" + aOpenInfo[ UR_OI_NAME ] + ; - ";uid=" + aWAData[ WA_USERNAME ] + ; - ";pwd=" + aWAData[ WA_PASSWORD ] ) + aWAData[ WA_CONNECTION ]:Open( "DRIVER={MySQL ODBC 3.51 Driver};" + ; + "server=" + aWAData[ WA_SERVER ] + ; + ";database=" + aOpenInfo[ UR_OI_NAME ] + ; + ";uid=" + aWAData[ WA_USERNAME ] + ; + ";pwd=" + aWAData[ WA_PASSWORD ] ) case aWAData[ WA_ENGINE ] == "SQL" - aWAData[ WA_CONNECTION ]:Open( "Provider=SQLOLEDB;" + ; - "server=" + aWAData[ WA_SERVER ] + ; - ";database=" + aOpenInfo[ UR_OI_NAME ] + ; - ";uid=" + aWAData[ WA_USERNAME ] + ; - ";pwd=" + aWAData[ WA_PASSWORD ] ) + aWAData[ WA_CONNECTION ]:Open( "Provider=SQLOLEDB;" + ; + "server=" + aWAData[ WA_SERVER ] + ; + ";database=" + aOpenInfo[ UR_OI_NAME ] + ; + ";uid=" + aWAData[ WA_USERNAME ] + ; + ";pwd=" + aWAData[ WA_PASSWORD ] ) CASE aWAData[ WA_ENGINE ] == "ORACLE" - aWAData[ WA_CONNECTION ]:Open( "Provider=MSDAORA.1;" + ; - "Persist Security Info=False" + ; - iif( Empty( aWAData[ WA_SERVER ] ),; - "", ";Data source=" + aWAData[ WA_SERVER ] ) + ; - ";User ID=" + aWAData[ WA_USERNAME ] + ; - ";Password=" + aWAData[ WA_PASSWORD ] ) + aWAData[ WA_CONNECTION ]:Open( "Provider=MSDAORA.1;" + ; + "Persist Security Info=False" + ; + iif( Empty( aWAData[ WA_SERVER ] ),; + "", ";Data source=" + aWAData[ WA_SERVER ] ) + ; + ";User ID=" + aWAData[ WA_USERNAME ] + ; + ";Password=" + aWAData[ WA_PASSWORD ] ) + CASE aWAData[ WA_ENGINE ] == "FIREBIRD" - aWAData[ WA_CONNECTION ]:Open( "Driver=Firebird/InterBase(r) driver;" + ; - "Persist Security Info=False" +; - ";Uid=" + aWAData[ WA_USERNAME ] +; - ";Pwd=" + aWAData[ WA_PASSWORD ] +; - ";DbName=" + aOpenInfo[ UR_OI_NAME ] ) + aWAData[ WA_CONNECTION ]:Open( "Driver=Firebird/InterBase(r) driver;" + ; + "Persist Security Info=False" +; + ";Uid=" + aWAData[ WA_USERNAME ] +; + ";Pwd=" + aWAData[ WA_PASSWORD ] +; + ";DbName=" + aOpenInfo[ UR_OI_NAME ] ) ENDCASE ELSE aWAData[ WA_CONNECTION ] := win_OleAuto() aWAData[ WA_CONNECTION ]:__hObj := aOpenInfo[ UR_OI_CONNECT ] /* "ADODB.Connection" */ aWAData[ WA_TABLENAME ] := t_cTableName - aWAData[ WA_QUERY ] := t_cQuery + aWAData[ WA_QUERY ] := t_cQuery aWAData[ WA_USERNAME ] := t_cUserName aWAData[ WA_PASSWORD ] := t_cPassword aWAData[ WA_SERVER ] := t_cServer @@ -344,7 +345,7 @@ STATIC FUNCTION ADO_OPEN( nWA, aOpenInfo ) aWAData[ WA_CONNOPEN ] := .F. ENDIF - // will be initilized + /* will be initilized */ t_cQuery := "" IF Empty( aWAData[ WA_QUERY ] ) @@ -359,7 +360,7 @@ STATIC FUNCTION ADO_OPEN( nWA, aOpenInfo ) oError:SubCode := 1001 oError:Description := HB_LANGERRMSG( EG_OPEN ) oError:FileName := aOpenInfo[ UR_OI_NAME ] - oError:OsCode := 0 // TODO + oError:OsCode := 0 /* TODO */ oError:CanDefault := .T. UR_SUPER_ERROR( nWA, oError ) @@ -393,7 +394,7 @@ STATIC FUNCTION ADO_OPEN( nWA, aOpenInfo ) UR_SUPER_SETFIELDEXTENT( nWA, nTotalFields := oRecordSet:Fields:Count ) FOR n := 1 TO nTotalFields - aField := ARRAY( UR_FI_SIZE ) + aField := Array( UR_FI_SIZE ) aField[ UR_FI_NAME ] := oRecordSet:Fields( n - 1 ):Name aField[ UR_FI_TYPE ] := ADO_GETFIELDTYPE( oRecordSet:Fields( n - 1 ):Type ) aField[ UR_FI_TYPEEXT ] := 0 @@ -457,24 +458,22 @@ STATIC FUNCTION ADO_GETVALUE( nWA, nField, xValue ) xValue := PadR( xValue, :Fields( nField - 1 ):DefinedSize ) ENDIF ELSEIF ADO_GETFIELDTYPE( :Fields( nField - 1 ):Type ) == HB_FT_DATE - // Null values + /* Null values */ IF ValType( xValue ) == "U" xValue := hb_SToD() ENDIF #ifdef HB_FT_DATETIME ELSEIF ADO_GETFIELDTYPE( :Fields( nField - 1 ):Type ) == HB_FT_DATETIME - // Null values + /* Null values */ IF ValType( xValue ) == "U" xValue := hb_SToD() ENDIF #endif -#ifdef HB_FT_TIMESTAMP ELSEIF ADO_GETFIELDTYPE( :Fields( nField - 1 ):Type ) == HB_FT_TIMESTAMP - // Null values + /* Null values */ IF ValType( xValue ) == "U" xValue := hb_SToD() ENDIF -#endif ENDIF ENDIF END WITH @@ -702,7 +701,7 @@ STATIC FUNCTION ADO_ORDINFO( nWA, nIndex, aOrderInfo ) LOCAL oRecordSet := aWAData[ WA_RECORDSET ] LOCAL nResult := HB_SUCCESS - DO CASE + DO CASE CASE nIndex == DBOI_EXPRESSION IF ! Empty( aWAData[ WA_CATALOG ] ) .AND. !Empty( aOrderInfo[ UR_ORI_TAG ] ) .AND.; aOrderInfo[ UR_ORI_TAG ] < aWAData[ WA_CATALOG ]:Tables( aWAData[ WA_TABLENAME ] ):Indexes:Count @@ -841,10 +840,8 @@ STATIC FUNCTION ADO_FIELDINFO( nWA, nField, nInfoType, uInfo ) CASE nType == HB_FT_DATETIME uInfo := "T" #endif -#ifdef HB_FT_TIMESTAMP CASE nType == HB_FT_TIMESTAMP uInfo := "@" -#endif CASE nType == HB_FT_LONG uInfo := "N" CASE nType == HB_FT_INTEGER @@ -862,7 +859,7 @@ STATIC FUNCTION ADO_FIELDINFO( nWA, nField, nInfoType, uInfo ) ELSE nLen := oRecordSet:Fields( nField - 1 ):DefinedSize ENDIF - // Un campo mayor de 1024 lo consideramos un campo memo + /* Un campo mayor de 1024 lo consideramos un campo memo */ uInfo := iif( nLen > 1024, 10, nLen ) CASE nInfoType == DBS_DEC @@ -1068,7 +1065,7 @@ STATIC FUNCTION ADO_SETREL( nWA, aRelInfo ) aWAData[ WA_CATALOG ]:Tables( aWAData[ WA_TABLENAME ] ):Keys:Append( cKeyName, adKeyForeign,; aRelInfo[ UR_RI_CEXPR ], cChild, aRelInfo[ UR_RI_CEXPR ] ) RECOVER - // raise error for can't create relation + /* raise error for can't create relation */ END SEQUENCE RETURN HB_SUCCESS @@ -1268,7 +1265,9 @@ STATIC FUNCTION ADO_SEEK( nWA, lSoftSeek, cKey, lFindLast ) HB_SYMBOL_UNUSED( lSoftSeek ) HB_SYMBOL_UNUSED( cKey ) HB_SYMBOL_UNUSED( lFindLast ) -/* TODO + +/* TODO */ +#if 0 LOCAL oRecordSet := USRRDD_AREADATA( nWA )[ WA_RECORDSET ] LPCDXTAG pTag; @@ -1276,7 +1275,7 @@ STATIC FUNCTION ADO_SEEK( nWA, lSoftSeek, cKey, lFindLast ) if ( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) RETURN HB_FAILURE; -//oRecordSet:Find( aWAData[ WA_SCOPEINFO ][ UR_SI_CFOR ], iif( lContinue, 1, 0 ) ) +/*oRecordSet:Find( aWAData[ WA_SCOPEINFO ][ UR_SI_CFOR ], iif( lContinue, 1, 0 ) ) */ LPCDXKEY pKey; HB_ERRCODE retval = HB_SUCCESS; HB_BOOL fEOF = HB_FALSE, fLast; @@ -1289,20 +1288,20 @@ STATIC FUNCTION ADO_SEEK( nWA, lSoftSeek, cKey, lFindLast ) pArea->fTop = pArea->fBottom = HB_FALSE; pArea->fEof = HB_FALSE; - if ( pTag->UsrUnique ) + if( pTag->UsrUnique ) fLast = !pTag->UsrAscend; else fLast = pTag->UsrAscend ? fFindLast : !fFindLast; - // TODO: runtime error if valtype(pKeyItm) != pTag->Type + /* TODO: runtime error if valtype( pKeyItm ) != pTag->Type */ pKey = hb_cdxKeyPutItem( NULL, pKeyItm, fLast ? CDX_MAX_REC_NUM : CDX_IGNORE_REC_NUM, pTag, HB_TRUE, HB_FALSE ); hb_cdxIndexLockRead( pTag->pIndex ); hb_cdxTagRefreshScope( pTag ); ulRec = hb_cdxTagKeyFind( pTag, pKey ); - if ( ( ulRec == 0 && ! fSoftSeek ) || pTag->TagEOF ) + if( ( ulRec == 0 && ! fSoftSeek ) || pTag->TagEOF ) fEOF = HB_TRUE; - else // if ( fSoftSeek ) + else /* if ( fSoftSeek ) */ { if ( ! hb_cdxBottomScope( pTag ) ) fEOF = HB_TRUE; @@ -1339,7 +1338,9 @@ STATIC FUNCTION ADO_SEEK( nWA, lSoftSeek, cKey, lFindLast ) pArea->fBof = HB_FALSE; hb_cdxKeyFree( pKey ); RETURN retval; -*/ + +#endif + RETURN HB_FAILURE STATIC FUNCTION ADO_FOUND( nWA, lFound ) @@ -1418,42 +1419,39 @@ STATIC FUNCTION ADO_GETFIELDSIZE( nDBFFieldType, nADOFieldSize ) LOCAL nDBFFieldSize := 0 DO CASE + CASE nDBFFieldType == HB_FT_STRING + nDBFFieldSize := nADOFieldSize - CASE nDBFFieldType == HB_FT_STRING - nDBFFieldSize := nADOFieldSize + CASE nDBFFieldType == HB_FT_INTEGER + nDBFFieldSize := nADOFieldSize - CASE nDBFFieldType == HB_FT_INTEGER - nDBFFieldSize := nADOFieldSize + CASE nDBFFieldType == HB_FT_DATE + nDBFFieldSize := 8 - CASE nDBFFieldType == HB_FT_DATE - nDBFFieldSize := 8 - - CASE nDBFFieldType == HB_FT_DOUBLE - nDBFFieldSize := nADOFieldSize + CASE nDBFFieldType == HB_FT_DOUBLE + nDBFFieldSize := nADOFieldSize #ifdef HB_FT_DATETIME - CASE nDBFFieldType == HB_FT_DATETIME - nDBFFieldSize := 8 + CASE nDBFFieldType == HB_FT_DATETIME + nDBFFieldSize := 8 #endif -#ifdef HB_FT_TIMESTAMP - CASE nDBFFieldType == HB_FT_TIMESTAMP - nDBFFieldSize := 8 -#endif + CASE nDBFFieldType == HB_FT_TIMESTAMP + nDBFFieldSize := 8 - CASE nDBFFieldType == HB_FT_OLE - nDBFFieldSize := 10 + CASE nDBFFieldType == HB_FT_OLE + nDBFFieldSize := 10 #ifdef HB_FT_PICTURE - CASE nDBFFieldType == HB_FT_PICTURE - nDBFFieldSize := 10 + CASE nDBFFieldType == HB_FT_PICTURE + nDBFFieldSize := 10 #endif - CASE nDBFFieldType == HB_FT_LOGICAL - nDBFFieldSize := 1 + CASE nDBFFieldType == HB_FT_LOGICAL + nDBFFieldSize := 1 - CASE nDBFFieldType == HB_FT_MEMO - nDBFFieldSize := 10 + CASE nDBFFieldType == HB_FT_MEMO + nDBFFieldSize := 10 ENDCASE @@ -1465,120 +1463,116 @@ STATIC FUNCTION ADO_GETFIELDTYPE( nADOFieldType ) DO CASE - CASE nADOFieldType == adEmpty - CASE nADOFieldType == adTinyInt - nDBFFieldType := HB_FT_INTEGER + CASE nADOFieldType == adEmpty + CASE nADOFieldType == adTinyInt + nDBFFieldType := HB_FT_INTEGER - CASE nADOFieldType == adSmallInt - nDBFFieldType := HB_FT_INTEGER + CASE nADOFieldType == adSmallInt + nDBFFieldType := HB_FT_INTEGER - CASE nADOFieldType == adInteger - nDBFFieldType := HB_FT_INTEGER + CASE nADOFieldType == adInteger + nDBFFieldType := HB_FT_INTEGER - CASE nADOFieldType == adBigInt - nDBFFieldType := HB_FT_INTEGER + CASE nADOFieldType == adBigInt + nDBFFieldType := HB_FT_INTEGER - CASE nADOFieldType == adUnsignedTinyInt - CASE nADOFieldType == adUnsignedSmallInt - CASE nADOFieldType == adUnsignedInt - CASE nADOFieldType == adUnsignedBigInt - CASE nADOFieldType == adSingle + CASE nADOFieldType == adUnsignedTinyInt + CASE nADOFieldType == adUnsignedSmallInt + CASE nADOFieldType == adUnsignedInt + CASE nADOFieldType == adUnsignedBigInt + CASE nADOFieldType == adSingle - CASE nADOFieldType == adDouble - nDBFFieldType := HB_FT_DOUBLE + CASE nADOFieldType == adDouble + nDBFFieldType := HB_FT_DOUBLE - CASE nADOFieldType == adCurrency - nDBFFieldType := HB_FT_INTEGER + CASE nADOFieldType == adCurrency + nDBFFieldType := HB_FT_INTEGER - CASE nADOFieldType == adDecimal - nDBFFieldType := HB_FT_LONG + CASE nADOFieldType == adDecimal + nDBFFieldType := HB_FT_LONG - CASE nADOFieldType == adNumeric - nDBFFieldType := HB_FT_LONG + CASE nADOFieldType == adNumeric + nDBFFieldType := HB_FT_LONG - CASE nADOFieldType == adError - CASE nADOFieldType == adUserDefined - CASE nADOFieldType == adVariant - nDBFFieldType := HB_FT_ANY + CASE nADOFieldType == adError + CASE nADOFieldType == adUserDefined + CASE nADOFieldType == adVariant + nDBFFieldType := HB_FT_ANY - CASE nADOFieldType == adIDispatch + CASE nADOFieldType == adIDispatch - CASE nADOFieldType == adIUnknown + CASE nADOFieldType == adIUnknown - CASE nADOFieldType == adGUID - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adGUID + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adDate + CASE nADOFieldType == adDate #ifdef HB_FT_DATETIME - nDBFFieldType := HB_FT_DATETIME + nDBFFieldType := HB_FT_DATETIME #else - nDBFFieldType := HB_FT_DATE + nDBFFieldType := HB_FT_DATE #endif - CASE nADOFieldType == adDBDate + CASE nADOFieldType == adDBDate #ifdef HB_FT_DATETIME - nDBFFieldType := HB_FT_DATETIME + nDBFFieldType := HB_FT_DATETIME #else - nDBFFieldType := HB_FT_DATE + nDBFFieldType := HB_FT_DATE #endif - CASE nADOFieldType == adDBTime + CASE nADOFieldType == adDBTime - CASE nADOFieldType == adDBTimeStamp -#ifdef HB_FT_TIMESTAMP - nDBFFieldType := HB_FT_TIMESTAMP -#else - //nDBFFieldType := HB_FT_DATE -#endif + CASE nADOFieldType == adDBTimeStamp + nDBFFieldType := HB_FT_TIMESTAMP - CASE nADOFieldType == adFileTime + CASE nADOFieldType == adFileTime #ifdef HB_FT_DATETIME - nDBFFieldType := HB_FT_DATETIME + nDBFFieldType := HB_FT_DATETIME #else - //nDBFFieldType := HB_FT_DATE + //nDBFFieldType := HB_FT_DATE #endif - CASE nADOFieldType == adBSTR - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adBSTR + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adChar - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adChar + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adVarChar - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adVarChar + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adLongVarChar - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adLongVarChar + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adWChar - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adWChar + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adVarWChar - nDBFFieldType := HB_FT_STRING + CASE nADOFieldType == adVarWChar + nDBFFieldType := HB_FT_STRING - CASE nADOFieldType == adBinary - nDBFFieldType := HB_FT_OLE + CASE nADOFieldType == adBinary + nDBFFieldType := HB_FT_OLE - CASE nADOFieldType == adVarBinary - nDBFFieldType := HB_FT_OLE + CASE nADOFieldType == adVarBinary + nDBFFieldType := HB_FT_OLE - CASE nADOFieldType == adLongVarBinary - nDBFFieldType := HB_FT_OLE + CASE nADOFieldType == adLongVarBinary + nDBFFieldType := HB_FT_OLE - CASE nADOFieldType == adChapter + CASE nADOFieldType == adChapter - CASE nADOFieldType == adVarNumeric - // case nADOFieldType == adArray + CASE nADOFieldType == adVarNumeric +/* CASE nADOFieldType == adArray */ - CASE nADOFieldType == adBoolean - nDBFFieldType := HB_FT_LOGICAL + CASE nADOFieldType == adBoolean + nDBFFieldType := HB_FT_LOGICAL - CASE nADOFieldType == adLongVarWChar - nDBFFieldType := HB_FT_MEMO + CASE nADOFieldType == adLongVarWChar + nDBFFieldType := HB_FT_MEMO - CASE nADOFieldType == adPropVariant - nDBFFieldType := HB_FT_MEMO + CASE nADOFieldType == adPropVariant + nDBFFieldType := HB_FT_MEMO ENDCASE @@ -1616,7 +1610,9 @@ PROCEDURE HB_AdoSetPassword( cPassword ) PROCEDURE HB_AdoSetQuery( cQuery ) - DEFAULT cQuery TO "SELECT * FROM " + IF ! ISCHARACTER( cQuery ) + cQuery := "SELECT * FROM " + ENDIF t_cQuery := cQuery @@ -1634,7 +1630,7 @@ STATIC FUNCTION SQLTranslate( cExpr ) cExpr := SubStr( cExpr, 2, Len( cExpr ) - 2 ) ENDIF - cExpr := StrTran( cExpr, '""', "" ) + cExpr := StrTran( cExpr, '""' ) cExpr := StrTran( cExpr, '"', "'" ) cExpr := StrTran( cExpr, "''", "'" ) cExpr := StrTran( cExpr, "==", "=" ) @@ -1647,13 +1643,17 @@ STATIC FUNCTION SQLTranslate( cExpr ) FUNCTION HB_AdoRddGetConnection( nWA ) - DEFAULT nWA TO Select() + IF ! ISNUMBER( nWA ) + nWA := Select() + ENDIF RETURN USRRDD_AREADATA( nWA )[ WA_CONNECTION ] FUNCTION HB_AdoRddGetCatalog( nWA ) - DEFAULT nWA TO Select() + IF ! ISNUMBER( nWA ) + nWA := Select() + ENDIF RETURN USRRDD_AREADATA( nWA )[ WA_CATALOG ] @@ -1661,7 +1661,9 @@ FUNCTION HB_AdoRddGetRecordSet( nWA ) LOCAL aWAData - DEFAULT nWA TO Select() + IF ! ISNUMBER( nWA ) + nWA := Select() + ENDIF aWAData := USRRDD_AREADATA( nWA ) diff --git a/harbour/examples/rddado/rddado.hbp b/harbour/examples/rddado/rddado.hbp index 0207668197..7ffdcedaa8 100644 --- a/harbour/examples/rddado/rddado.hbp +++ b/harbour/examples/rddado/rddado.hbp @@ -6,4 +6,8 @@ -olib/${hb_plat}/${hb_comp}/rddado -inc +-w3 -es2 + +-stop{!win} + adordd.prg