Datenbankverbindung -> ConnectionTimeout -> ProgressBar
-
Hallo Leutz!
Hat jemand eine Idee, wie man das anders regeln könnte?
Hatte mir vorgestellt, das jemand die Verbindungsdaten zu einem SQL-Server einträgt und geprüft wird ob die Verbindung dahin klappt.
Während des Verbindungsversuchs sollte wie unten gezeigt der Fortschritt
angezeigt werden.Soweit die Theorie... Aber warum geht das nicht?
Wärend
ADOConnection1->Connected = true;
ausgeführt wird, werden keine Ereignisse vom Programm ausgelöst bzw. wargenommen ... was'n da kaputt?
Muss ich da jetzt echt noch mit Thread's oder Prozessen anfangen? Für so eine harmlose Fortschrittsanzeige?void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString VerbindungsString = ""; VerbindungsString += "Provider=SQLOLEDB.1;Persist Security Info=True;"; VerbindungsString += "Password=" + EditPW->Text + ";"; VerbindungsString += "User ID=" + EditUSER->Text + ";"; VerbindungsString += "Initial Catalog=" + EditDB->Text + ";"; VerbindungsString += "Data Source=" + EditSERVER->Text + ";"; ADOConnection1->ConnectionString = VerbindungsString; ProgressBar1->Max = ADOConnectionT1->ConnectionTimeout; ProgressBar1->Position = 0; Timer1->Enabled = true; try { ADOConnection1->Connected = true; // sollte max. // [ConnectionTimeout] sec dauern } catch(...) { } Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { ProgressBar1->StepBy(1); }
Gruß,
Lachzwerg
-
Lachzwerg,
Lachzwerg schrieb:
Muss ich da jetzt echt noch mit Thread's oder Prozessen anfangen?
wenn Du die Verbingungsaufnahme im Main-Tread ausführst, ist dieser halt blockiert, bis die Methode abgearbeitet ist - also ja.