G
Hallo gh u. Jansen,
endlich ich habe es, siehe Code:
void __fastcall TForm1::ffnen2Click(TObject *Sender)
{
Form2->OpenDialog1->Execute();
AnsiString pfadK = Form2->OpenDialog1->FileName;
AnsiString pfad = ExtractFileDir(Form2->OpenDialog1->FileName);
TStringList *s = new TStringList();
s->Delimiter = ';';
s->Values["Provider"] = "MSDASQL.1";
//s->Values["Password"] = "admin";
s->Values["Persist Security Info"] = "true";
s->Values["Mode"] = "Read";
s->Values["Extended Properties = DBQ"] = pfadK;
s->Values["DefaultDir"] = pfad;
s->Values["Driver"] = "{Driver do Microsoft Access (*.mdb)}";
s->Values["DriverId"] = "25";
s->Values["FIL"] = "MS Access";
s->Values["MaxBufferSize"] = "2048";
s->Values["MaxScanRows"] = "8";
s->Values["PageTimeout"] = "5";
s->Values["SafeTransactions"] = "0";
s->Values["Threads"] = "3";
s->Values["UID"] = "admin";
s->Values["UserCommitSync"] = "Yes";
s->Values["Initial Catalog"]= pfad +"\\Test";
//s->Values["Data Source"] = pfad;
AnsiString s1 = s->DelimitedText;
while(int x = s1.Pos("\"")) s1.Delete(x,1);
ADOConnection1->ConnectionString = s1;
ShowMessage(s1);
delete s;
Form1->zuletzt1->Caption = pfadK;
//Clipboard()->AsText = ADOConnection1->ConnectionString;
if(FileExists("c:\\database.ini"))
{
ofstream f("c:\\database.ini", ios::binary);
if(!f)
ShowMessage("Fehler beim öffnen");
f.write(pfadK.c_str(), pfadK.Length());
if(!f)
ShowMessage("Fehler beim schreiben");
f.close(); // evtl. überflüssig Dateireservierung vom OS, wird normal
// beim verlassen der Verbundanweisung automatisch geschlossen
}
else
{
ofstream f("c:\\database.ini", ios::binary);
}
}
Der Vorschlag von gh brachte mich auf die Lösung. Trotzdem würde mich noch die Funktion checkLocalMachine() Interessieren, aber das hat keine Eile. Nun muss ich nur noch das mit dem fstream einlesen hin bekommen.
Danke für Euere Tipps
mfg
gil