ODBC-Alias anlegen lassen?
-
Hallo, ich hab mich mal gefragt, ob es möglich ist - und ich denke schon, dass es gut möglich ist - dass man vom Programm aus ein ODBC-Alias anlegen lassen kann? - Wie geht das?
Ziel ist es, dass man die Datenbank auswählt (MS-Access-DB) und darauf zugreift, dazu ist ja ein ODBC-Alias notwendig. Außerdem soll gleich Benutzername udn PAsswort eingestellt werden können.
- Windoof
-
Ich hatte schonmal genau das gleiche problem, und kann dir hiermit sagen du kommst in die WinAPI =!)
Ich mach das mit InstallShield...!
Aber schau mal im Forum WinAPI!
-
Eventuell hilft Dir das hier weiter: http://www.delphipraxis.net/topic8966_odbcentrag+zur+laufzeit+erzeugen.html&sid=cb956600c453202170e62c68d017d611
-
Wenn mir das jemand in C++ umsetzen könnte... ich schaff es nicht... ich schafe es nicht diese DLL einzubinden, kenne die Syntax dafür nicht...
Thx. - Windoof
-
also ich kenn da die WINAPI Funktion:
// myrecordset.cpp: Implementierungsdatei // #include "stdafx.h" #include "xxx.h" #include "myrecordset.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // myrecordset IMPLEMENT_DYNAMIC(myrecordset, CRecordset) myrecordset::myrecordset(CDatabase* pdb) : CRecordset(pdb) { //{{AFX_FIELD_INIT(myrecordset) m_ID = 0; m_Name = _T(""); m_nFields = 2; //}}AFX_FIELD_INIT m_nDefaultType = snapshot; } CString myrecordset::GetDefaultConnect() { // Neuer Connectionstring return _T("ODBC;Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db1.mdb;"); } CString myrecordset::GetDefaultSQL() { return _T("[name]"); } void myrecordset::DoFieldExchange(CFieldExchange* pFX) { //{{AFX_FIELD_MAP(myrecordset) pFX->SetFieldType(CFieldExchange::outputColumn); RFX_Long(pFX, _T("[ID]"), m_ID); RFX_Text(pFX, _T("[Name]"), m_Name); //}}AFX_FIELD_MAP } ///////////////////////////////////////////////////////////////////////////// // Diagnose myrecordset #ifdef _DEBUG void myrecordset::AssertValid() const { CRecordset::AssertValid(); } void myrecordset::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif //_DEBUGvielleicht kannst ja damit was anfangen!
-
#include <odbcinst.h>
-
Hmmm... und die Klasse dazu...? - Leitet sie von irgendwoher etwas ab oder so...? Zeig mal den Code von der Klasse.