diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 1db7fa5b63..b62c0a3cbc 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,52 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-10-27 23:38 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * contrib/hbmysql/tmysql.prg + * contrib/xhb/hbcompat.ch + * contrib/xhb/dirrec.prg + * contrib/xhb/txml.prg + * contrib/xhb/hblog.prg + * contrib/xhb/cstruct.prg + * contrib/hbodbc/todbc.prg + * contrib/hbtpathy/telepath.prg + * contrib/hbmsql/tmsql.prg + * contrib/hbpgsql/tpostgre.prg + * contrib/hbgd/gd.prg + * contrib/hbgd/gdimage.prg + * contrib/hbgd/gdbarcod.prg + * contrib/hbgd/gdchart.prg + * contrib/hbgd/gdbar.prg + * contrib/hbmisc/stringp.prg + * contrib/hbtip/thtml.prg + * contrib/hbtip/popcln.prg + * contrib/hbtip/sendmail.prg + * contrib/hbtip/cgi.prg + * contrib/hbtip/httpcln.prg + * contrib/hbtip/encoder.prg + * contrib/hbtip/smtpcln.prg + * contrib/hbtip/mail.prg + * contrib/hbtip/ftpcln.prg + * contrib/hbwin/win_reg.prg + * contrib/hbwin/win_tole.prg + * source/rdd/usrrdd/rdds/arrayrdd.prg + * source/rdd/usrrdd/rdds/hscdx.prg + * source/rdd/usrrdd/rdds/rlcdx.prg + * utils/hbdoc/genos2.prg + * utils/hbdoc/genng.prg + * utils/hbdoc/genchm.prg + * utils/hbdoc/genhtm.prg + * utils/hbdoc/genrtf.prg + * utils/hbdoc/gentrf.prg + * utils/hbmake/hbmake.prg + % 'ValType() == "?"' -> IS*() + % *trim( Str() ) -> hb_NToS() + ; In few places in hbtip the length limit + was removed from Str(), as it was used + inconsistently and could also cause + infinite loops and invalid filenames. + % Some other minor updates. + 2008-10-27 22:39 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * tests/db_brows.prg * contrib/hbmysql/tmysql.prg diff --git a/harbour/contrib/hbgd/gd.prg b/harbour/contrib/hbgd/gd.prg index 4aeac14046..241ea4f092 100644 --- a/harbour/contrib/hbgd/gd.prg +++ b/harbour/contrib/hbgd/gd.prg @@ -50,12 +50,6 @@ * */ -/* - * - * See doc/license files for licensing terms. - * - */ - #include "common.ch" FUNCTION gdImageChar( im, font, x, y, char, color ) @@ -187,7 +181,7 @@ FUNCTION gdImageToString( oImage ) //Tracelog( "oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' )", ; // oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' ) ) - IF ValType( oImage ) == "O" .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) + IF ISOBJECT( oImage ) .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) WITH OBJECT oImage IF :cType != NIL DO CASE @@ -211,7 +205,7 @@ PROCEDURE gdImageToFile( oImage, cFile ) //Tracelog( "oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' )", ; // oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' ) ) - IF ValType( oImage ) == "O" .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) + IF ISOBJECT( oImage ) .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) WITH OBJECT oImage IF :cType != NIL DO CASE @@ -243,7 +237,7 @@ PROCEDURE gdImageToHandle( oImage, nHandle ) //Tracelog( "oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' )", ; // oImage, oImage:ClassName, oImage:IsDerivedFrom( 'GDIMAGE' ) ) - IF ValType( oImage ) == "O" .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) + IF ISOBJECT( oImage ) .AND. ( oImage:ClassName == "GDIMAGE" .OR. oImage:IsDerivedFrom( "GDIMAGE" ) ) WITH OBJECT oImage IF :cType != NIL DO CASE diff --git a/harbour/contrib/hbgd/gdbar.prg b/harbour/contrib/hbgd/gdbar.prg index 09a213945d..2c6e139010 100644 --- a/harbour/contrib/hbgd/gdbar.prg +++ b/harbour/contrib/hbgd/gdbar.prg @@ -50,11 +50,6 @@ * */ -/* - * - * See doc/license files for licensing terms. - * - */ #include "gd.ch" #include "hbclass.ch" #include "common.ch" @@ -377,9 +372,4 @@ METHOD Finish( image_style, quality, nFG ) CLASS TBarCode Return .T. FUNCTION IsInt( pvar ) - - If Valtype( pvar ) == "C" - Return .F. - EndIf - -Return .T. +Return ! ISCHARACTER( pvar ) diff --git a/harbour/contrib/hbgd/gdbarcod.prg b/harbour/contrib/hbgd/gdbarcod.prg index 810225b667..234fc389b6 100644 --- a/harbour/contrib/hbgd/gdbarcod.prg +++ b/harbour/contrib/hbgd/gdbarcod.prg @@ -50,11 +50,6 @@ * */ -/* - * - * See doc/license files for licensing terms. - * - */ #include "hbclass.ch" #include "common.ch" @@ -444,7 +439,7 @@ METHOD Draw128( cText, cModeCode ) CLASS TCode ::settext( cText ) If !Empty( cModeCode ) - If valtype(cModeCode)='C' .and. Upper(cModeCode) $'ABC' + If ISCHARACTER( cModeCode ) .and. Upper(cModeCode) $'ABC' cModeCode := Upper(cModeCode) Else ::DrawError("Code 128 Modes are A,B o C. Character values.") diff --git a/harbour/contrib/hbgd/gdchart.prg b/harbour/contrib/hbgd/gdchart.prg index 2ca69d07a6..acf9005df7 100644 --- a/harbour/contrib/hbgd/gdchart.prg +++ b/harbour/contrib/hbgd/gdchart.prg @@ -50,13 +50,6 @@ * */ -/* - * - * See doc/license files for licensing terms. - * - */ - - #include "common.ch" #include "hbclass.ch" #include "gd.ch" @@ -117,13 +110,13 @@ METHOD AddData( hData ) CLASS GDChart RETURN Self METHOD SetData( aData ) CLASS GDChart - IF ValType( aData ) == "A" + IF ISARRAY( aData ) ::aDataOfHashes := aData ENDIF RETURN Self METHOD AddDef( cDefKey, xDefVal ) CLASS GDChart - IF ValType( cDefKey ) == "C" + IF ISCHARACTER( cDefKey ) HB_hSet( ::hDefs, Upper( cDefKey ), xDefVal ) ENDIF RETURN Self diff --git a/harbour/contrib/hbgd/gdimage.prg b/harbour/contrib/hbgd/gdimage.prg index 2f7e252c49..03c5d5d73a 100644 --- a/harbour/contrib/hbgd/gdimage.prg +++ b/harbour/contrib/hbgd/gdimage.prg @@ -50,12 +50,6 @@ * */ -/* - * - * See doc/license files for licensing terms. - * - */ - #include "common.ch" #include "hbclass.ch" #include "gd.ch" diff --git a/harbour/contrib/hbmisc/stringp.prg b/harbour/contrib/hbmisc/stringp.prg index 36ecaf3d09..e660e20f72 100644 --- a/harbour/contrib/hbmisc/stringp.prg +++ b/harbour/contrib/hbmisc/stringp.prg @@ -99,7 +99,7 @@ function ToChar( xTxt, cSeparator, lDebug ) cOut := iif( lDebug, '"'+xTxt+'"', xTxt ) case cValTxt=="N" // Numeric - cOut := Alltrim(Str(xTxt)) + cOut := hb_NToS(xTxt) case cValTxt=="U" // Nothing to write cOut := iif( lDebug, "NIL", "" ) diff --git a/harbour/contrib/hbmsql/tmsql.prg b/harbour/contrib/hbmsql/tmsql.prg index 33f802e442..b5a2b794a9 100644 --- a/harbour/contrib/hbmsql/tmsql.prg +++ b/harbour/contrib/hbmsql/tmsql.prg @@ -121,7 +121,7 @@ METHOD FieldPut(nNum, Value) CLASS TmSQLRow if nNum > 0 .AND. nNum <= Len(::aRow) if Valtype(Value) == Valtype(::aRow[nNum]) .OR. Empty(::aRow[nNum]) // if it's a char field encode singole quotes - if ValType(Value) == "C" + if ISCHARACTER(Value) ::aRow[nNum] := StrTran(Value, "'", "\'") else ::aRow[nNum] := Value @@ -430,11 +430,11 @@ METHOD Update(oRow) CLASS TmSQLTable for i := 1 to Len(oRow:aRow) if oRow:aDirty[i] do case - case Valtype(oRow:aRow[i]) == "N" - cField := AllTrim(Str(oRow:aRow[i])) + case ISNUMBER(oRow:aRow[i]) + cField := hb_NToS(oRow:aRow[i]) cUpdateQuery += oRow:aFieldStruct[i][MSQL_FS_NAME] + "=" + cField + "," - case Valtype(oRow:aRow[i]) == "D" + case ISDATE(oRow:aRow[i]) if !Empty(oRow:aRow[i]) // mSQL dates are like this 1-Oct-1900 cUpdateQuery += oRow:aFieldStruct[i][MSQL_FS_NAME] + "=" + "'" + Str(Day(oRow:aRow[i]), 2) + "-" + Left(CMonth(oRow:aRow[i]), 3) + "-" + Str(Year(oRow:aRow[i]), 4) + "'," @@ -442,11 +442,11 @@ METHOD Update(oRow) CLASS TmSQLTable cUpdateQuery += oRow:aFieldStruct[i][MSQL_FS_NAME] + "=" + "''," endif - case Valtype(oRow:aRow[i]) == "C" + case ISCHARACTER(oRow:aRow[i]) cUpdateQuery += oRow:aFieldStruct[i][MSQL_FS_NAME] + "='" + oRow:aRow[i] + "'," - case Valtype(oRow:aRow[i]) == "L" - cField := AllTrim(Str(iif(oRow:aRow[i] == .F., 0, 1))) + case ISLOGICAL(oRow:aRow[i]) + cField := iif(oRow:aRow[i], "1", "0") cUpdateQuery += oRow:aFieldStruct[i][MSQL_FS_NAME] + "=" + cField + "," otherwise @@ -459,7 +459,7 @@ METHOD Update(oRow) CLASS TmSQLTable // remove last comma cUpdateQuery := Left(cUpdateQuery, Len(cUpdateQuery) -1) - cUpdateQuery += " WHERE _rowid=" + AllTrim(Str(oRow:nRowID)) + cUpdateQuery += " WHERE _rowid=" + hb_NToS(oRow:nRowID) if msqlQuery(::nSocket, cUpdateQuery) == 1 // All values are commited @@ -480,7 +480,7 @@ METHOD Delete(oRow) CLASS TmSQLTable // is this a row of this table ? if oRow:cTable == ::cTable - cDeleteQuery += AllTrim(Str(oRow:nRowID)) + cDeleteQuery += hb_NToS(oRow:nRowID) if msqlQuery(::nSocket, cDeleteQuery) == 1 return .T. @@ -512,14 +512,14 @@ METHOD Append(oRow) CLASS TmSQLTable for i := 1 to Len(oRow:aRow) do case - case Valtype(oRow:aRow[i]) == "N" - cField := AllTrim(Str(oRow:aRow[i])) + case ISNUMBER(oRow:aRow[i]) + cField := hb_NToS(oRow:aRow[i]) cInsertQuery += cField + "," - case Valtype(oRow:aRow[i]) == "C" + case ISCHARACTER(oRow:aRow[i]) cInsertQuery += "'" + oRow:aRow[i] + "'," - case Valtype(oRow:aRow[i]) == "D" + case ISDATE(oRow:aRow[i]) if !Empty(oRow:aRow[i]) // mSQL dates have this form " 1-Oct-1990" /* NOTE: current implementation CANNOT retrieve from mSQL dates BEFORE 1st January 1970 */ @@ -528,8 +528,8 @@ METHOD Append(oRow) CLASS TmSQLTable cInsertQuery += "''," endif - case Valtype(oRow:aRow[i]) == "L" - cField := AllTrim(Str(iif(oRow:aRow[i] == .F., 0, 1))) + case ISLOGICAL(oRow:aRow[i]) + cField := iif(oRow:aRow[i], "1", "0") cInsertQuery += cField + "," otherwise @@ -650,7 +650,7 @@ METHOD CreateTable(cTable, aStruct) CLASS TmSQLServer for i := 1 to Len(aStruct) do case case aStruct[i][DBS_TYPE] == "C" - cCreateQuery += aStruct[i][DBS_NAME] + " char(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")," + cCreateQuery += aStruct[i][DBS_NAME] + " char(" + hb_NToS(aStruct[i][DBS_LEN]) + ")," case aStruct[i][DBS_TYPE] == "N" if aStruct[i][DBS_DEC] == 0 @@ -666,7 +666,7 @@ METHOD CreateTable(cTable, aStruct) CLASS TmSQLServer cCreateQuery += aStruct[i][DBS_NAME] + " uint," otherwise - cCreateQuery += aStruct[i][DBS_NAME] + " char(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")," + cCreateQuery += aStruct[i][DBS_NAME] + " char(" + hb_NToS(aStruct[i][DBS_LEN]) + ")," endcase diff --git a/harbour/contrib/hbmysql/tmysql.prg b/harbour/contrib/hbmysql/tmysql.prg index bd1bb59682..9f5bbaad99 100644 --- a/harbour/contrib/hbmysql/tmysql.prg +++ b/harbour/contrib/hbmysql/tmysql.prg @@ -141,7 +141,7 @@ METHOD FieldPut(cnField, Value) CLASS TMySQLRow if Valtype(Value) == Valtype(::aRow[nNum]) .OR. ::aRow[nNum]==NIL // if it is a char field remove trailing spaces - if ValType(Value) == "C" + if ISCHARACTER(Value) Value := RTrim(Value) endif @@ -584,8 +584,8 @@ METHOD GetRow(nRow) CLASS TMySQLQuery otherwise - //DAVID: Alert("Unknown type from SQL Server Field: " + LTrim(Str(i))+" is type "+LTrim(Str(::aFieldStruct[i][MYSQL_FS_TYPE]))) - // QOUT("Unknown type from SQL Server Field: " + LTrim(Str(i))+" is type "+LTrim(Str(::aFieldStruct[i][MYSQL_FS_TYPE]))) + //DAVID: Alert("Unknown type from SQL Server Field: " + hb_NToS(i)+" is type "+hb_NToS(::aFieldStruct[i][MYSQL_FS_TYPE])) + // QOUT("Unknown type from SQL Server Field: " + hb_NToS(i)+" is type "+hb_NToS(::aFieldStruct[i][MYSQL_FS_TYPE])) endcase @@ -662,7 +662,7 @@ METHOD FieldGet(cnField) CLASS TMySQLQuery local nNum,Value - if ValType(cnField) == "C" + if ISCHARACTER(cnField) nNum := ::FieldPos(cnField) else nNum := cnField @@ -1228,7 +1228,7 @@ METHOD FieldPut(cnField, Value) CLASS TMySQLTable local nNum - if ValType(cnField) == "C" + if ISCHARACTER(cnField) nNum := ::FieldPos(cnField) else nNum := cnField @@ -1240,7 +1240,7 @@ METHOD FieldPut(cnField, Value) CLASS TMySQLTable if Valtype(Value) == Valtype(::aRow[nNum]) .OR. ::aRow[nNum]==NIL // if it is a char field remove trailing spaces - if ValType(Value) == "C" + if ISCHARACTER(Value) Value := RTrim(Value) endif @@ -1463,7 +1463,7 @@ METHOD CreateTable(cTable, aStruct,cPrimaryKey,cUniqueKey,cAuto) CLASS TMySQLSer for i := 1 to Len(aStruct) do case case aStruct[i][DBS_TYPE] == "C" - ::cCreateQuery += aStruct[i][DBS_NAME] + " char(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + Eval(cNN, aStruct[i])+ iif(aStruct[i][DBS_NAME]==cPrimaryKey," NOT NULL ",'' )+ "," + ::cCreateQuery += aStruct[i][DBS_NAME] + " char(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" + Eval(cNN, aStruct[i])+ iif(aStruct[i][DBS_NAME]==cPrimaryKey," NOT NULL ",'' )+ "," case aStruct[i][DBS_TYPE] == "M" ::cCreateQuery += aStruct[i][DBS_NAME] + " text" + Eval(cNN, aStruct[i]) + "," @@ -1471,25 +1471,25 @@ METHOD CreateTable(cTable, aStruct,cPrimaryKey,cUniqueKey,cAuto) CLASS TMySQLSer case aStruct[i][DBS_TYPE] == "N" /* if aStruct[i][DBS_DEC] == 0 - ::cCreateQuery += aStruct[i][DBS_NAME] + " int(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + Eval(cNN, aStruct[i]) + iif(aStruct[i][DBS_NAME]==cPrimaryKey," NOT NULL ",'' )+ iif(aStruct[i][DBS_NAME]==cAuto," auto_increment ",'' ) + "," + ::cCreateQuery += aStruct[i][DBS_NAME] + " int(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" + Eval(cNN, aStruct[i]) + iif(aStruct[i][DBS_NAME]==cPrimaryKey," NOT NULL ",'' )+ iif(aStruct[i][DBS_NAME]==cAuto," auto_increment ",'' ) + "," else - ::cCreateQuery += aStruct[i][DBS_NAME] + " real(" + AllTrim(Str(aStruct[i][DBS_LEN])) + "," + AllTrim(Str(aStruct[i][DBS_DEC])) + ")" + Eval(cNN, aStruct[i]) + "," + ::cCreateQuery += aStruct[i][DBS_NAME] + " real(" + hb_NToS(aStruct[i][DBS_LEN]) + "," + hb_NToS(aStruct[i][DBS_DEC]) + ")" + Eval(cNN, aStruct[i]) + "," endif */ if (aStruct[i][DBS_DEC] == 0) .and. (aStruct[i][DBS_LEN] <= 18) do case case (aStruct[i][DBS_LEN] <= 4) - ::cCreateQuery += aStruct[i][DBS_NAME] + " smallint(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + ::cCreateQuery += aStruct[i][DBS_NAME] + " smallint(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" case (aStruct[i][DBS_LEN] <= 6) - ::cCreateQuery += aStruct[i][DBS_NAME] + " mediumint(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + ::cCreateQuery += aStruct[i][DBS_NAME] + " mediumint(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" case (aStruct[i][DBS_LEN] <= 9) - ::cCreateQuery += aStruct[i][DBS_NAME] + " int(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + ::cCreateQuery += aStruct[i][DBS_NAME] + " int(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" otherwise - ::cCreateQuery += aStruct[i][DBS_NAME] + " bigint(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + ::cCreateQuery += aStruct[i][DBS_NAME] + " bigint(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" endcase ::cCreateQuery += Eval(cNN, aStruct[i]) + iif(aStruct[i][DBS_NAME]==cPrimaryKey," NOT NULL ",'' )+ iif(aStruct[i][DBS_NAME]==cAuto," auto_increment ",'' ) + "," else - ::cCreateQuery += aStruct[i][DBS_NAME] + " real(" + AllTrim(Str(aStruct[i][DBS_LEN])) + "," + AllTrim(Str(aStruct[i][DBS_DEC])) + ")" + Eval(cNN, aStruct[i]) + "," + ::cCreateQuery += aStruct[i][DBS_NAME] + " real(" + hb_NToS(aStruct[i][DBS_LEN]) + "," + hb_NToS(aStruct[i][DBS_DEC]) + ")" + Eval(cNN, aStruct[i]) + "," endif case aStruct[i][DBS_TYPE] == "D" ::cCreateQuery += aStruct[i][DBS_NAME] + " date " + Eval(cNN, aStruct[i]) + "," @@ -1504,7 +1504,7 @@ METHOD CreateTable(cTable, aStruct,cPrimaryKey,cUniqueKey,cAuto) CLASS TMySQLSer ::cCreateQuery += aStruct[i][DBS_NAME] + " mediumint " + Eval(cNN, aStruct[i]) + "," otherwise - ::cCreateQuery += aStruct[i][DBS_NAME] + " char(" + AllTrim(Str(aStruct[i][DBS_LEN])) + ")" + Eval(cNN, aStruct[i]) + "," + ::cCreateQuery += aStruct[i][DBS_NAME] + " char(" + hb_NToS(aStruct[i][DBS_LEN]) + ")" + Eval(cNN, aStruct[i]) + "," endcase @@ -1719,10 +1719,10 @@ static function ClipValue2SQL(Value) local cValue do case - case Valtype(Value) == "N" - cValue := AllTrim(Str(Value)) + case ISNUMBER(Value) + cValue := hb_NToS(Value) - case Valtype(Value) == "D" + case ISDATE(Value) if !Empty(Value) // MySQL dates are like YYYY-MM-DD cValue := "'"+StrZero(Year(Value), 4) + "-" + StrZero(Month(Value), 2) + "-" + StrZero(Day(Value), 2) + "'" @@ -1731,7 +1731,7 @@ static function ClipValue2SQL(Value) endif case Valtype(Value) $ "CM" - IF Empty( Value) + IF Empty( Value ) cValue="''" ELSE cValue := "'" @@ -1739,8 +1739,8 @@ static function ClipValue2SQL(Value) cValue+= value+ "'" ENDIF - case Valtype(Value) == "L" - cValue := AllTrim(Str(iif(Value == .F., 0, 1))) + case ISLOGICAL(Value) + cValue := iif(Value, "1", "0") otherwise cValue := "''" // NOTE: Here we lose values we cannot convert diff --git a/harbour/contrib/hbodbc/todbc.prg b/harbour/contrib/hbodbc/todbc.prg index 30625859bc..488a8cc0d2 100644 --- a/harbour/contrib/hbodbc/todbc.prg +++ b/harbour/contrib/hbodbc/todbc.prg @@ -776,7 +776,7 @@ METHOD LoadData(nPos) CLASS TODBC .or. nType == SQL_INTEGER; .or. nType == SQL_FLOAT; .or. nType == SQL_REAL - IF VALTYPE(uData) =="C" + IF ISCHARACTER(uData) uData := strtran(uData,",",".") uData := Round( Val(uData), ::Fields[ i ]:DataSize ) ENDIF diff --git a/harbour/contrib/hbpgsql/tpostgre.prg b/harbour/contrib/hbpgsql/tpostgre.prg index 8ab9af3a21..df46cd2d23 100644 --- a/harbour/contrib/hbpgsql/tpostgre.prg +++ b/harbour/contrib/hbpgsql/tpostgre.prg @@ -383,13 +383,13 @@ METHOD CreateTable( cTable, aStruct ) CLASS TPQserver cQuery += aStruct[i, 1] if aStruct[ i, 2 ] == "C" - cQuery += ' Char(' + ltrim(str(aStruct[i, 3])) + ')' + cQuery += ' Char(' + hb_NToS(aStruct[i, 3]) + ')' elseif aStruct[ i, 2 ] == "D" cQuery += ' Date ' elseif aStruct[ i, 2 ] == "N" - cQuery += ' Numeric(' + ltrim(str(aStruct[i, 3])) + ',' + ltrim(str(aStruct[i,4])) + ')' + cQuery += ' Numeric(' + hb_NToS(aStruct[i, 3]) + ',' + hb_NToS(aStruct[i,4]) + ')' elseif aStruct[ i, 2 ] == "L" cQuery += ' boolean ' @@ -830,7 +830,7 @@ METHOD Delete(oRow) CLASS TPQquery nField := oRow:Fieldpos(::aKeys[i]) xField := oRow:FieldGetOld(nField) - cWhere += ::aKeys[i] + ' = $' + ltrim(str(i)) + cWhere += ::aKeys[i] + ' = $' + hb_NToS(i) AADD( aParams, ValueToString(xField) ) @@ -885,7 +885,7 @@ METHOD Append( oRow ) CLASS TPQquery For i := 1 to oRow:FCount() if ::lallCols .or. oRow:Changed(i) nParams++ - cQuery += '$' + ltrim(str(nParams)) + ',' + cQuery += '$' + hb_NToS(nParams) + ',' aadd( aParams, ValueToString(oRow:FieldGet(i)) ) endif Next @@ -947,7 +947,7 @@ METHOD Update(oRow) CLASS TPQquery if ::lallcols .or. oRow:Changed(i) lChanged := .t. nParams++ - cQuery += oRow:Fieldname(i) + ' = $' + ltrim(str(nParams)) + ',' + cQuery += oRow:Fieldname(i) + ' = $' + hb_NToS(nParams) + ',' aadd( aParams, ValueToString(oRow:FieldGet(i)) ) end Next diff --git a/harbour/contrib/hbtip/cgi.prg b/harbour/contrib/hbtip/cgi.prg index d8949f4b90..dcbad1a84c 100644 --- a/harbour/contrib/hbtip/cgi.prg +++ b/harbour/contrib/hbtip/cgi.prg @@ -289,12 +289,12 @@ METHOD ErrHandler( xError ) CLASS TIpCgi ::Print( '