Skall man vara strikt är detta inte ett C++ problem men...C++ och Crystal Reports
Jag har ett problem som jag hoppas att någon kan ge mig ett litet tips om en lösning på:
Jag har gjort ett antal rapporter i Crystal Rreports 8.5 (CR) som skall användas i (minst) två applikationer och mot både Oracle och MS SQL-server.
Rapporterna startas från en applikation utvecklad i Visual C++ & använder ActiveX & Crystl32.ocx
Var och en av dessa applikationer kan jobba mot ett flertal databaser, man kan ha en produktionsdatabas och en eller flera test/utbildningsdatabaser (samma datamodell dock!), men man vet aldrig (säkert) vad tabellägaren heter och i minst hälften av fallen vet man inte heller tabellägarens lösenord.
I rapporterna måste jag ju ha "TABELLÄGARE"."TABELLNAMN" på ett eller annat sätt.
För att kunna låta CR ansluta till databaser med olika tabellägare har jag raderat tabellägaren från rapportdefinitionen och allt fungerar fint i de fall jag kan låta rapporterna connecta mot databasen genom att använda:
CString csCrptConnec;
csCrptConnect = "DSN=" + m_pDB->m_connectInfo.GetDatabaseDsn() +
";UID=" + m_pDB->m_connectInfo.GetDatabaseUser() +
";PWD=" + m_pDB->m_connectInfo.GetDatabasePwd();
crCrystlReport.SetConnect(m_csCrptConnect);
och där UID == tabellägare och PWD == tabellägarens lösenord.
Tabellägarens namn har jag alltid tillgång till, men inte lösenordet för tabellägaren.
Om jag inte har möjlighet att fånga upp tabellägarens lösenord utan har en "vanlig" användares ID & lösen behöver rapportdefinitionen innehålla "TABELLÄGARE"."TABELLNAMN". Gäller även med LogOnServer(...)
Till saken:
Vet någon om en metod för att i runtime sätta tabellägare i en rapport så att jag i rapportdefinitionen bara behöver ha "TABELLNAMN" och så att man kan "logga in" som en vanlig användare?