stranger no? with Mysql 4.1 functions perfectly USE ceif VIA "ADORDD" TABLE "aplica" MYSQL ; FROM "localhost" USER "root" PASSWORD "masterkey" ALIAS "aplica"
with Mysql 5.0.37 error: Error ADODB.Recordset/16389 E_FAIL: OPEN Arguments: ( [ 1] = Type: C Val: aplic a [ 2] = Type: O Val: { TOLEAUTO Object })
Error at ...: TOLEAUTO:OPEN(0) in Module: win32ole.prg Called from : ADO_OPEN(273) in Module: ADORDD.PRG Called from : DBUSEAREA(0) in Module:
the solution for this error is: static function ADO_OPEN( nWA, aOpenInfo )
local aWAData := USRRDD_AREADATA( nWA ) local cName, aField, oError, nResult local oRecordSet, nTotalFields, n
// When there is no ALIAS we will create new one using file name if aOpenInfo[ UR_OI_ALIAS ] == nil HB_FNAMESPLIT( aOpenInfo[ UR_OI_NAME ], , @cName ) aOpenInfo[ UR_OI_ALIAS ] := cName endif
about query, i see another thing in ADO_OPEN IF aWAData[ WA_QUERY ]=="SELECT * FROM " oRecordSet:Open( aWAData[ WA_QUERY ] + aWAData[ WA_TABLENAME ], aWAData[ WA_CONNECTION ] ) ELSE oRecordSet:Open( aWAData[ WA_QUERY ], aWAData[ WA_CONNECTION ] ) ENDIF
but, when USE command, not open HB_AdoSetQuery( <cQuery> ) function when not have a Query, only open function if Query exist, then forever push the last query
EX: SELE 0 USE ceif VIA "ADORDD" ALIAS "S" TABLE "s" MYSQL FROM "localhost" USER "root" PASSWORD "masterkey" < the query is a SELECT * FROM S >
but, if open with Query SELE 0 USE ceif VIA "ADORDD" ALIAS "ABC" TABLE "ABC" MYSQL FROM "localhost" USER "root" PASSWORD "masterkey" QUERY "SELECT * FROM ABC ORDER BY nomeus" < the query is a SELECT * FROM ABC ORDER BY nomeus >
but if open without Query again SELE 0 USE ceif VIA "ADORDD" ALIAS "TTT" TABLE "TTT" MYSQL FROM "localhost" USER "root" PASSWORD "masterkey" < the query is a SELECT * FROM ABC ORDER BY nomeus >
Para comenzar es preferible que crees la base de datos con una utilidad como el Navicat. Luego prueba el ejemplo mysql1.prg que proporcionamos con ADORDD