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.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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`"
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
gtalleg.hbp
|
||||
|
||||
-stop{!msvc&!pocc}
|
||||
|
||||
-o${hb_name}
|
||||
-workdir=${hb_work}/${hb_plat}/${hb_comp}/${hb_name}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
13
harbour/contrib/gtalleg/tests/test.prg
Normal file
13
harbour/contrib/gtalleg/tests/test.prg
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
REQUEST HB_GT_ALLEG_DEFAULT
|
||||
ANNOUNCE HB_GTSYS
|
||||
|
||||
PROCEDURE Main()
|
||||
|
||||
CLS
|
||||
ALERT( "Hello world!" )
|
||||
|
||||
RETURN
|
||||
285
harbour/contrib/makefile.prg
Normal file
285
harbour/contrib/makefile.prg
Normal file
@@ -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 )
|
||||
@@ -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 )
|
||||
|
||||
|
||||
@@ -6,4 +6,8 @@
|
||||
-olib/${hb_plat}/${hb_comp}/rddado
|
||||
-inc
|
||||
|
||||
-w3 -es2
|
||||
|
||||
-stop{!win}
|
||||
|
||||
adordd.prg
|
||||
|
||||
Reference in New Issue
Block a user