STATIC FUNCTION ADO_CREATE( nWA, aOpenInfo )
LOCAL aWAData := USRRDD_AREADATA( nWA )
LOCAL cTable := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 1, ";" )
LOCAL cDataBase := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 2, ";" )
LOCAL cDbEngine := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 3, ";" )
LOCAL cServer := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 4, ";" )
LOCAL cUserName := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 5, ";" )
LOCAL cPassword := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 6, ";" )
LOCAL cSql, cSql2, lAddAutoInc := .F.
LOCAL oCatalog , cMarkTmp, lNoError := .T.,cTmpTable
IF EMPTY(cDbEngine) //IF NOT DEFINED USE DEFAULT
ADODEFAULTS()
ENDIF
IF( ALLTRIM( cDataBase ) == "" ,cDataBase:= t_cDataSource, cDataBase )
IF( ALLTRIM( cTable ) == "" , cTable := aOpenInfo[ UR_OI_NAME ] ,cTable)
IF( ALLTRIM( cDbEngine ) == "" ,cDbEngine:= t_cEngine, cDbEngine )
IF( ALLTRIM( cServer ) == "" , cServer:= t_cServer, cServer )
IF( ALLTRIM( cUserName ) == "" , cUserName:= t_cUserName, cUserName )
IF( ALLTRIM( cPassword ) == "" , cPassword:= t_cPassword, cPassword )
hb_adoSetDSource(cDataBase)
hb_adoSetEngine( cDbEngine )
hb_adoSetServer( cServer )
hb_adoSetUser( cUserName )
hb_adoSetPassword( cPassword )
IF cDbEngine = "ACCESS" //t_cEngine WITH DEFAULT VALUE BU ADODEFAULTS
IF !FILE(cDataBase)
oCatalog := TOleAuto():New( "ADOX.Catalog" )
oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase )
ENDIF
ENDIF
aOpenInfo[ UR_OI_NAME ] := CFILENOEXT( CFILENOPATH( cTable ) )
ADOCONNECT( nWA, aOpenInfo )
/*
fix to add HBRECNO if it´s not present // Lucas De Beltran 23.05.2015
*/
if AScan( aWAData[ WA_SQLSTRUCT ], ADODEFLDRECNO() ) == 0
AIns( aWAData[ WA_SQLSTRUCT ], 1, { ADODEFLDRECNO(), '+', 10, 0 }, .t. )
endif
cSql := ADOSTRUCTTOSQL( aWAData, aWAData[ WA_SQLSTRUCT ],@lAddAutoInc )Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producciĂłn]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
