Avatar billede tille Nybegynder
10. november 2003 - 14:35 Der er 3 kommentarer og
2 løsninger

bruge openfiledialog til at vælge odbc link

Hej, sidder og roder med en applikation der skal kunne lsve en Fuzzy sammenligning af to felter i en tller flere tabeller.

for at vælge tabeller benytter jeg OpenFileDialog, men den virker kun på filbaserede tabeller, og det er jo ok til test, af fuzzykoden i mod en Acces tabel.

Nu vil jeg gerne at man skal kunne vælge odbc links også.

Ligesom man kan i Access når man vil linke en tabel.

Er det bare et filter (og i givet fald hvilket), eller er der andet der skal til.

En anden vej rundt er om man kan bruge System.data.oledb til at fortælle hvilke odbc links der findes, på maskinen, kan man det?
Avatar billede finger Nybegynder
10. november 2003 - 15:58 #1
har ingen anelse, men et vildt skud kunne være at du evt kunne se det gennem system.Enviroment??
Avatar billede tille Nybegynder
10. november 2003 - 21:47 #2
Hej Finger

Nej det var ikke via System.environment, men du ledte mig på rette spor

Alle dsn står i registry under
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources

og med microsoft.win32.registry kan man komme til dem.
Avatar billede tille Nybegynder
10. november 2003 - 21:48 #3
lav lige et svar, så deler vi :-)
Avatar billede finger Nybegynder
10. november 2003 - 21:57 #4
ah smart. kan du ikke lige smide et par kode linier der henter den data?
Avatar billede tille Nybegynder
10. november 2003 - 22:29 #5
her er en hurtig konsol app, der lister registry nøgler
kan nemt laves rekursivt, men jeg er ved at være lidt træt af at kigge på skærmen for idag så det gik læidt hurtigt, nu ved jeg jo at det kan lade sig gøre :-)

// created on 10-11-2003 at 22:18
using System;
using Microsoft.Win32;

class Reg {
    public static void Main() {

        // Hent registry nøgler for HKEY_LOCAL_MACHINE
        RegistryKey rk = Registry.LocalMachine;

        // udskriv - skulle selvfølgelig være rekursiv, men nu skulle det lige være lidt hurtigt
        PrintKeys(rk);
     
        RegistryKey rk2 = rk.OpenSubKey("Software");
PrintKeys(rk2);

        RegistryKey rk3 = rk2.OpenSubKey("ODBC");
PrintKeys(rk3);

        RegistryKey rk4 = rk3.OpenSubKey("ODBC.INI");
PrintKeys(rk4);

        RegistryKey rk5 = rk4.OpenSubKey("ODBC Data Sources");
PrintKeys(rk5);


    }

    static void PrintKeys(RegistryKey rkey) {

        // Hent alle nøgler for rkey
        String [] names = rkey.GetSubKeyNames();

        int icount = 0;

        Console.WriteLine("Undernøgler af " + rkey.Name);
        Console.WriteLine("-----------------------------------------------");

        // skriv til konsollen
        foreach (String s in names) {
            Console.WriteLine(s);

//            icount++;
//            if (icount >= 10)
//                break;
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester