Announcement

Collapse
No announcement yet.

Was macht eine *.udl-Datei zur Microsoft-Datenverknüpfung?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Was macht eine *.udl-Datei zur Microsoft-Datenverknüpfung?

    Hi,

    ich habe versucht eine neue udl-Datei zu erstellen indem ich eine neue Datei erzeugt habe und da rein die Informationen geschrieben habe. Obwohl die Einträge alle richtig sind wird die Datei z.B. vom Explorer beim Doppelklick nicht als Datenverknüpfung erkannt.
    Woran kann das liegen?

    Andreas

  • #2
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Neue Seite 1</title>
    </head>

    <body>

    <p>Hallo, Ich weiß zwar nicht was eine udl-Datei ist, aber im Prinzip ist alles das Gleiche. Hier ein Beispiel, um den Standardviewer für Tiff-Dateien zu ändern:</p>
    <pre>void __fastcall TDM::ViewerAuswahlClick(TObject *Sender)
    {
    TMenuItem *T=dynamic_cast &lt;TMenuItem *>(Sender);
    char *Funktion[2]={"open","print"};
    char *Parameter[2]={" \"%1\""," /p \"%1\""};
    int ok=0;
    LPSTR Viewer=new char[100];
    TRegistry *Reg=new TRegistry();
    Reg-&gt;RootKey=HKEY_CLASSES_ROOT;
    if(Reg-&gt;OpenKey(&quot;.tif&quot;,false))
    {
    sprintf(Viewer,&quot;%s\\Shell\\%s\\command&quot;,
    Reg-&gt;ReadString(&quot;&quot.c_str(),Funktion[T-&gt;Tag]);
    Reg-&gt;CloseKey();
    if(Reg-&gt;OpenKey(Viewer,true))
    {
    strcpy(Viewer,Reg-&gt;ReadString(&quot;&quot.c_str());
    Viewer[strlen(Viewer)-5]=0;
    OpenDialog1-&gt;FileName=Viewer;
    if(OpenDialog1-&gt;Execute())
    {
    strcpy(Viewer,OpenDialog1-&gt;FileName.c_str());
    strcat(Viewer,Parameter[T-&gt;Tag]);
    Reg-&gt;WriteString(&quot;&quot;,Viewer);
    }
    Reg-&gt;CloseKey();
    ok=1;
    }
    }
    if(!ok) MessageBox(Application-&gt;Handle,&quot;Registry kann nicht geöffnet werden&quot;,&quot;Error&quot;,MB_OK);
    Reg-&gt;Free();
    delete Viewer;
    } </pre>
    <p>Gruß - Günther</p>

    </body>

    </html&gt
    Günther

    Comment


    • #3
      Hallo Günther,

      naja so das Richtige ist das nicht. Udl-Dateien sind Dateien in denen eine Verbindungszeichenfolge für OleDB-Datenbanken abgelegt sind.
      Das Problem ist das im Explorer die über den CBuilder erstellten udl-Dateien als "Datenverknüpfung" erkann werden aber die selbstgeschriebenen (über FileWrite()) nicht erkannt werden, obwohl sie vom Inhalt her beide identisch sind.

      Andrea

      Comment


      • #4
        In meiner Registry gibt es den Schlüssel .UDL mit dem Wert MSDASC.

        Und diesem MSDASC ist zum "open" das Shell-Command

        Rundll32.exe C:\PROGRA~1\GEMEIN~1\System\OLEDB~1\oledb32.dll,Op enDSLFile %1

        zugeordnet. Daß es da noch weitere Feinheiten zu unterscheiden gilt, ist mir ein Rätsel. Eine UDL-Datei habe ich nicht. Wenn ich eine beliebige Datei umbenenne bekommt sie sofort das entsprechende Icon. Groß / Kleinschreibung spielt dabei keine Rolle
        Günther

        Comment

        Working...
        X