PROCEDURE LogOnSQL >This.FixUpTables() >* look for subreports, update SQL Server logon info > FOR EACH loSection IN This.oReport.Sections > WITH loSection > FOR EACH loReportObject IN .ReportObjects > IF loReportObject.Kind = crSubreportObject > loSubreport = This.oReport.OpenSubreport(loReportObject.SubreportName) > > WITH loSubreport > STORE .F. TO .MorePrintEngineErrorMessages, .EnableParameterPrompting > ENDWITH > > This.FixUpTables(loSubreport, lcSQLServer, lcDBName, lcUserID, lcPswd) > > loSubreport = .null. > ENDIF > NEXT loReportObject > loReportObjects = .null. > ENDWITH > NEXT loSection >ENDPROC > >****************************************** > PROCEDURE FixUpTables > ****************************************** > > LPARAMETER toReport, tcSQLServer, tcDBName, tcUserID, tcPswd > > LOCAL loTable, lcLocation, lcUserID, lcPswd, sConnString > > FOR EACH loTable IN toReport.Database.Tables > > WITH loTable > lcLocation = .Location > *** connect to SQL Server using OLEDB (ConnectionProperties) > loConnProps = loTable.ConnectionProperties > *** delete all existing connection properties > loConnProps.DeleteAll() > *** add new connection properties > loConnProps.Add("Provider","SQLOLEDB") > > loConnProps.Add("Data Source",tcSQLServer) > loConnProps.Add("Initial Catalog",tcDBName) > > loConnProps.Add("User ID",tcUserID) > > ** check for dbl quote - change to chr(34) > tcPswd = ScrubDblQuote(tcPswd) > > loConnProps.Add("Password", tcPswd) > IF "Proc(" $ lcLocation > lcLocation = STRTRAN(lcLocation,"Proc(","") > lcLocation = STRTRAN(lcLocation,")","") > ENDIF > .Location = tcDBName + ".dbo." + lcLocation > > ENDWITH > NEXT loTable > > loTable = .null. >ENDPROC