Frage zu Inno-Setup bzw. Warten auf Beenden von fremden Programmen
-
Hast du das Projekt bekommen? Hast du auch den Linkerfehler?
Mich interessiert wirklich, wo der herkommt.So, falls das nochmal jemand braucht, ich habe das mittlerweile so:
try { try { m_dbAd.OpenEx("DSN=dsn_name;UID=sa;PWD=sa-pwd", CDatabase::noOdbcDialog); } catch (CDBException* p) { CString szDriver = "SQL Server"; CSqlConfigString arrAttributes; arrAttributes.Add("DSN=dsn_name"); arrAttributes.Add("DESCRIPTION=Meine Datenbank"); arrAttributes.Add("SERVER=(local)"); // arrAttributes.Add("ADDRESS=(local)"); // arrAttributes.Add("NETWORK=pc_name"); arrAttributes.Add("DATABASE=db_name"); // arrAttributes.Add("UID=sa"); // arrAttributes.Add("PWD=sa-pwd"); // Sicherheitshalber löschen: SQLConfigDataSource(NULL, ODBC_REMOVE_DSN, szDriver, arrAttributes); // Jetzt erstellen if (SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriver, arrAttributes)) { m_dbAd.OpenEx("DSN=dsn_name;UID=sa;PWD=sa-pwd", CDatabase::noOdbcDialog); } else { p->ReportError(); p->Delete(); AfxMessageBox(_T("Die Verbindung zur Datenbank konnte nicht erstellt werden.\nDas Programm wird beendet.")); return FALSE; } p->Delete(); } } catch (CDBException* p) { p->ReportError(); AfxMessageBox(_T("Die Verbindung zur Datenbank konnte nicht erstellt werden.\nDas Programm wird beendet.")); p->Delete(); } catch (CMemoryException* p) { p->ReportError(); AfxMessageBox(_T("Die Verbindung zur Datenbank konnte nicht erstellt werden.\nDas Programm wird beendet.")); p->Delete(); } catch (...) { AfxMessageBox(_T("Die Verbindung zur Datenbank konnte nicht erstellt werden.\nDas Programm wird beendet.")); }
Ich versuche also, mich anzumelden, wenn das nicht geht, lösche ich eine eventuell falsche DSN und lege dann den richtigen an und verbinde mich nochmal.
Wenn das immernoch nicht geht wird das Programm beendet.
-
Linker Fehler hatte ich dir geschrieben
Polofreak in E-Mail schrieb:
#include <odbcinst.h>
denke das brauchst du noch!!versuchs mal ich denke da kommt es her!
-
Auf die Mail hab ich schon geantwortet - mit Projekt im Anhang.
Den Include habe ich, den Linkerfehler trotzdem.Include vergessen: Meckert wegen "nichtdeklarierter Bezeichner".
Unaufgelöstes externes Symbol ist eher ein Dll/Lib Fehler.
...dachte ich bisher.
-
wie hast du das Project geschickt? bitte Raren wir haben hier eine sch** Firewall die nach Sicherheitsrichtlinien alles mögliche Filtert wenn ZIP dann Bitte mit PWD
Security Policies!
-
Ups.
So sollte es gehen.War zwar gerart, aber mit ner alten Version und ohne Pwd.
Naja, nächstes Mal wunder ich mich nicht so lange, wenn du nicht antwortest.
-
#include <afxdb.h>
mit dem sollte es gehen!
-
Eine kleine Zeile, 4 Stunden suchen... sowas hasse ich...
DANKE!
Ich merk mir jetzt, dass der Fehler auch bei fehlenden Includes kommen kann.
-
tut mir leid dass du deswegen 4 Stunden suchen musstest, wenn ich nicht so im Stress gewesen wäre hätte ich dir wahrscheinlich auch schneller helfen können aber ich bin hier wahrscheinlich nur noch 2 Wochen!
-
Hey, die 4 Stunden kreide ich DIR doch nicht an...
Ich freu mich doch trotzdem über die Hilfe, und wenn ich die Antwort erst übermorgen bekommen hätte.Mach dir wegen Sachen hier im Forum keinen Streß.
-
Nicht wegen Sachen hier im Forum!
Aber wegen Sachen für dich
-
Danke, dank euch hab ichs geschafft ne ODBC-Verbindung dynamisch zu erstellen... genial!!
Allerdings schaffe ich es nicht, mich zum SQL-Server zu verbinden, wenn ich Username und passwort angebe! Habs mit UID und PWD versucht:SQLConfigDataSource(
NULL,
ODBC_ADD_SYS_DSN,
"SQL Server",
"DSN=audiodactic\0UID=username\0PWD=passwd\0");-> geht nicht! Warum
-
ist dein Username wirklich usernam und dein Passwort auch wirklich passwd und Moment du wiedersprichst dir ja mal total du sagst du hast es geschafft die DSN dynamisch einzurichten und unten sagst du der Code ginge nicht (ist übrigens keine ausreichende Beschreibung) der Code macht aber nichts anderes als eine DSN mit dem USername und dem PWD anzulegen also schau mal ob der Username und das PWD in der DSN eingetragen sind. Und dann sag nochmal genau was bei dir nicht klapp mit Fehlerbeschreibung und wenn möglich mit etwas Code. übrigens benutze bitte Codetags einfach unten auf C/C++ drücken vor und nach dem Code, dann kann man es besser lesen.
-
ich schaff es, ne verbindung aufzubauen, wenn ich keinen benutzername bzw kennwort angib!!
mein sql-server verlangt, aber als username "gasi1" und als passwort ebenfalls "gasi1" ("username" und "passwd" war nur als bsp)!
das funktioniert:
SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, "SQL Server", "DSN=dyn_Testserver\0Server=TESTSERV-5C2ULH\0Description=Beschreibung\0");
das funktioniert nicht:
SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, "SQL Server", "DSN=dyn_Testserver\0Server=TESTSERV-5C2ULH\0Description=Beschreibung\0Uid=gasi1\Pwd=gasi1\0");
kann es sein, dass die Schlüsselwerte nicht "Uid" und "Pwd" sondern irgendwie anders heißen sollten?
-
Hi, ich kriege das so auch nicht hin, deswegen ist es ja auskommentiert.
Gib die Userdaten dem CDatabase::Open bzw. gleich dem CRecordset mit, das funktioniert.
-
sehr gute idee eigentlich!!
danke
-
Also als aller erstes mal \ ohne 0 terminiert
SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, "SQL Server", "DSN=dyn_Testserver\0Server=TESTSERV-5C2ULH\0Description=Beschreibung\0Uid=gasi1\Pwd=gasi1\0");
Hier wird es mit einer FileDSN mit PWD gemacht und bei der SysDSN ohne.
Ich hab dacht das kann doch nicht so schwer sein hab rum probiert und gemacht aber mit ner SYS DSN scheint es nicht zu gehen. Auch über google nur Leute gefunden die das gleiche Problem haben aber nie ne Lösung. Dann hab ich gedacht ich bin ein Schwein dann create ich sie halt und danach Configurier ich sie in dem ich dann UID und PWD mitgeb aber auch so hab ich es nicht hin bekommen. Ich mein aber du darfst nicht Uid schreiben sondern UID.
Drum mach es am besten so wie Estartu dir geraten hat oder versuch das aus dem Link mit der FileDSNEDIT: Seit wann geht bold im Codetag nicht mehr?