Avatar billede rbl Praktikant
05. september 2002 - 23:48 Der er 13 kommentarer og
1 løsning

Reference til ODBC-driver

Jeg fik i en anden tråd løsningen på, hvordan man skulle connecte til en MySQL database med asp.net (VB-script). Koden virker, men jeg vil gerne gøre den platformsuafhængig. Det vil sige, at jeg gerne vil undgå direkte referencer til en fil på harddisken.

Koden er her:

<%@ Page Language="VB" Debug="True" CompilerOptions='/R:"C:\Program Files\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.dll"' %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Microsoft.Data.ODBC" %>
<html>
<head>
<script runat="server">

  'DATABASE CONNECTION
  Dim strConn As String = "driver=MySQL;Server=localhost;DB=DB_Navn;UID=user;Pwd=pass;"
  Dim objConn As New ODBCConnection(strConn)

  Public Sub Page_Load (obj As Object, e As EventArgs)

    'DISPLAY RECORDS IN DATAGRID WHEN PAGE FIRST LOADS
    If Not Page.IsPostBack Then
      Dim objCmd As New ODBCCommand     
      Dim objDA As New ODBCDataAdapter
      Dim dvw As DataView
      Dim ds As New DataSet
      dim strSQL = "SELECT * FROM table_navn"
      objDA = New ODBCDataAdapter(strSQL, objConn)
      objDA.Fill(ds, "table_navn")
      dvw = ds.Tables("table_navn").DefaultView
      ctrlRepeater.DataSource = dvw
      ctrlrepeater.DataBind()
    End If
  End Sub

</script>

</head>
<body>
<asp:repeater id="ctrlRepeater" runat="server">
  <itemtemplate>
    <%# DataBinder.Eval (Container.DataItem, "navn") %>
  </itemtemplate>
</asp:repeater>
</body>
</html>

Det jeg gerne vil undgå er referencen til filen C:\Program Files\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.dll. Kan det lade sig gøre ved at skrive noget andet i stedet ?
Avatar billede z42cool Nybegynder
06. september 2002 - 08:26 #1
Du kan jo ikke undgå at referere et assembly som du anvender i din kode. Frameworket bliver jo nødt til at vide hvor den skal lede! Så nej, du kan ikke undgå referencen til odbc assembly'et.
Avatar billede rbl Praktikant
06. september 2002 - 10:09 #2
Jeg troede bare, at man kunne referere til filen uden at angive den eksakte sti.
Avatar billede z42cool Nybegynder
06. september 2002 - 10:16 #3
Det kan du også, men så kræves det bare at filen ligger i samme dir som din source fil!
Avatar billede rbl Praktikant
06. september 2002 - 10:47 #4
Det vil sige, at man bare kan kopiere filen Microsoft.Data.Odbc.dll hen til et bibliotok på serveren f.eks <root>\Odbcdriver\Microsoft.Data.Odbc.dll ?  Og så referere til den fra alle de sider, der skal bruge den ?
Avatar billede z42cool Nybegynder
06. september 2002 - 11:25 #5
Ja, men da det stien bruges til er en compiler option og da compileren i sagens natur kører på serveren, behøves det ikke at være en sti der er adgang til udefra!
Avatar billede rbl Praktikant
06. september 2002 - 12:10 #6
Koden skal køre på et hotel, så jeg bliver nødt til at lægge den i den tilgængelige mappestruktur
Avatar billede rbl Praktikant
06. september 2002 - 12:27 #7
Det virker ikke. Selvom filen ligger i samme dir, siger den, at den ikke kan finde den
Avatar billede z42cool Nybegynder
06. september 2002 - 16:26 #8
Så kører compileren ikke lokalt i forhold til dit web directory, så kan du ikke komme uden om at angive hele den direkte sti!
Avatar billede kichian Nybegynder
07. september 2002 - 00:50 #9
I din machine.config file tilføjer du følgende:

<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Odbc" publicKeyToken="b77a5c561934e089"/>
</dependentAssembly>

Eller i din web.config

<configuration>
  <system.web>
      <compilation debug="true">
        <assemblies>
                <add assembly="Microsoft.Data.Odbc, Version=1.0.3300.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        </assemblies>
      </compilation>
  </system.web>
</configuration>

Så slipper du for at skulle angive en sti. Men derudover kan egne DLLer registreres i GACen med gacutil.exe. Og derved blive globalt tilgængelige uden bruge af stier.
Avatar billede rbl Praktikant
10. september 2002 - 00:01 #10
jeg har tilføjet det til web.config, men siger bare "assemply not found"
Avatar billede kichian Nybegynder
10. september 2002 - 15:37 #11
Dyk ned i din \WINDIR\assembly mmappen og find Microsoft.Data.Odbc

Her kan du se den korrekte version og publicKeyToken
Avatar billede kichian Nybegynder
10. september 2002 - 15:48 #12
Og så bør
Import Namespace="Microsoft.Data.ODBC

vel skrives som
Import Namespace="Microsoft.Data.Odbc
Avatar billede kichian Nybegynder
10. september 2002 - 15:55 #13
Det sidste gør tricket... Hvilket vel egentlig betyder at den kode du har i starten aldrig har kørt.
Avatar billede rbl Praktikant
30. september 2002 - 11:11 #14
nå, det endte med at jeg fandt ud af den eksakte sti på serveren.

Og kichian -> Det er ikke særlig smart at hentyde til at jeg direkte lyver. Når jeg siger at det virker, så virker det også.
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