wxSeziFisch
-
Guten Morgen,
ist wohl wirklich für wxWidget Cracks:
Ich sollte die auf der jeweiligen OS existierenden ODBC Datenquellen zu Verfügung haben.
Schaffs aber schon gleichmal nicht auf Windoof, die in der regestry abgelegten ODBC Datenquellen zu bekommen,
obwohl ich weiss, wo sie dort liegen.Es gibt die Klasse wxConfig bzw. wxConfigBase, die systemabhängig in entsprechende Unterklassen verzweigt.
Eine davon ist wxRegConfig. Die sind zwar erst mal dazu ausgelegt, eigene Konfigurationen/Daten zu speichern,
muessen die ja aber auch lesen koennen.Meine Frage:
Wie tut das gehn? Folgendes ist schiefgegangen (keine Einraege gefunden):wxConfig *m_p_sysodbc; ... m_p_sysodbc = new wxConfig("ODBC", "", "ODBC.INI", "ODBC.INI", 0); m_p_sysodbc->Create(); m_p_sysodbc->SetPath("/HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBC.INI/ODBC Data Sources"); size_t entries = m_p_sysodbc->GetNumberOfEntries(false); wxConfigBase *p_odbc = m_p_sysodbc->Get(false); entries = p_odbc->GetNumberOfEntries(false);
alternativ hab ich noch folgendes versucht:
wxRegConfig *m_p_sysodbc; ... m_p_sysodbc = new wxRegConfig("ODBC", "", "ODBC.INI", "ODBC.INI", 0); ...
Mit den Argumenten hab ich auch rumgespielt: "ODBC" als appName, odbcad32, mit und ohne localFilename/globalFilename.
Hat da jemand Erfahrung?
SF
-
Speziell dazu kann ich dir leider nicht weiter helfen. Nutze zwar gerne wxWidgets, aber halt nicht ODBC und ähnliches. Vielleicht weiß jemand anderes hier bescheid?
Falls du hier keine Hilfe bekommen kannst, Newsgoup:
news:comp.soft-sys.wxwindowsAußerdem gibts noch Mailinglisten, wo sich auch die wxWidgets-ENtwickler tummeln, und die wissen bestimmt etwas:
http://www.wxwidgets.org/maillst2.htm
-
Hast Du schon dort nachgefragt:
-
Danke fuer die tipps, geht nicht per wxConfig oder wxRegConfig, sondern per
wxDB::wxDbGetDataSource(). Sorgt mir zwar grad noch fuer folgendes:frame={level="0",addr="0x77e848d5",func="KERNEL32!GetEnvironmentStringsA",from="C:\\WINNT\\system32\\kernel32.dll"}
frame={level="1",addr="0x77e7b0ce",func="WideCharToMultiByte",from="C:\\WINNT\\system32\\kernel32.dll"}
frame={level="2",addr="0x1f7e0af0",func="SQLGetDescRecW",from="C:\\WINNT\\System32\\odbc32.dll"}(KERNEL32.DLL): 0xC0000005: Access Violation.
aber, auch wenn ich noch nicht weiss, wie ich eine wxDbConnectInf ( die den DB / ODBC - Namen, User und PW braucht ) instanziere, um dann damit den HENV zu bekommen, den ich wiederum als Argument fuer wxDbGetDataSource() brauche, irgendwie wird das schon noch...
SF