Witam wszystkich
"Miałem sen... " :) w tym śnie łączyłem plik(i) dbf do mojej dynamicznie tworzonej bazy mdb, a następnie wykorzystywałem jedynie tej bazy mdb do wszystkich operacji na różnych tabelach dbf tak jaby były zaimportowane w programie Access. Jak dokonać tego w rzeczywistości ? :/ znalazłem coś takiego, ale nie bardzo mi to działa i trudno mi to zrozumieć, jak to właściwie działa. Oto fragment:
object accessObject = null;
try
{
accessObject = Activator.CreateInstance(Type.GetTypeFromProgID("Access.Application"));
accessObject.GetType().InvokeMember(
"OpenCurrentDatabase",
System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod,
null,
accessObject,
new Object[] { "AccessDbase.mdb" });
accessObject.GetType().InvokeMember(
"Run",
System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod,
null,
accessObject,
new Object[] { "Import", "DSN Name", "Source table name", "Target table name" });
accessObject.GetType().InvokeMember(
"CloseCurrentDatabase",
System.Reflection.BindingFlags.Default System.Reflection.BindingFlags.InvokeMethod,
null,
accessObject,
null);
MessageBox.Show("Copy succeeded.");
}
catch (Exception ex)
{
string message = ex.Message;
while (ex.InnerException != null)
{
ex = ex.InnerException;
message += "\r\n----\r\n" + ex.Message;
}
MessageBox.Show(message);
}
finally
{
if (accessObject != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(accessObject);
accessObject = null;
}
}
Inna opcja jaką spotkałem to utworzenie pustego pliku .udl i uruchomienie go (otworzy się okno do konfiguracji tego połączenia), ale mi zależy na tym, żeby stało się to w tle bez ingerencji użytkownika, no chyba, że jego ewentualne błogosławieństwo na podaną czynność. Ok to teraz skoro znacie mój problem to podam więcej szczegółów.
Mam baze mdb w resourcach, przenoszę ją do tymczasowego folderu aktualnie zalogowanego użytkownika, różne różniaste projekty wyposażone są w pliki dbf, wiem gdzie znajdują się te pliki dbf i mam do nich pełny dostęp (teraz wykonuje zadania na dbf, ale jak wposmniałem "miałem sen.. :)") teraz chce zlinkować wszystkie wybrane przeze mnie tabele dbf to skopiowanej bazki mdb i później za pomocą dynamicznie zbudowanego schematu bazy i ustaleniu ich relacji odpowiednio wykorzystać w funkcjonalności programu.
Pozdrawiam, liczę na was :)