Avatar billede erve Nybegynder
25. maj 2005 - 17:18 Der er 16 kommentarer og
1 løsning

Oracle og .NET

Findes der en måde at connecte til en oracle DB fra ASP.NET, som ikke kræver installation af sqlclient.
Hvis ikke hvordan er så licensforholdene mht SQLClient?
Avatar billede arne_v Ekspert
25. maj 2005 - 18:19 #1
SqlClient er til MS SQLServer

Du skal bruge OracleClient til Oracle. Den kommer med .NET (namespace System.Data.Oracle).
Avatar billede arne_v Ekspert
25. maj 2005 - 18:19 #2
Du kan også hente en .NET provider hos Oracle.

(og nej - jeg ved ikke hvad forskellen er i forhold til Microsofts)
Avatar billede arne_v Ekspert
25. maj 2005 - 22:32 #3
rettelse: System.Data.OracleClient

og link hos Oracle er http://www.oracle.com/technology/software/tech/windows/odpnet/index.html
Avatar billede erve Nybegynder
26. maj 2005 - 08:58 #4
Ja jeg mente naturligvis Oracle's SQL Net Client.
Vi anvender Oracle 8.1.7, så ODB.NET går ikke.
Så vidt jeg kan konstatere kræver System.Data.OracleClient at SQL Net Client 8.1.7 or later er installeret.
Det jeg ikke helt kan gennemskue er hvad OleDB og ODBC kræver skal være installeret
Avatar billede arne_v Ekspert
26. maj 2005 - 09:05 #5
De kræver vel henholdsvis Oracle OLE DB Provider og Oracle ODBC Driver
installeret.

Men jeg mener at "normale" PC'ere faktisk får "Microsoft ODBC for Oracle"
installeret.

Jeg har den ihvertfald også på PC'ere som ikke har skyggen af Oracle
software på dem.
Avatar billede arne_v Ekspert
26. maj 2005 - 09:07 #6
Når man installerer Oracle for man Oracles egen, men ...
Avatar billede erve Nybegynder
26. maj 2005 - 13:34 #7
Ja men såvidt jeg kan se skal der også være Oracle's SQL Net Client installeret. Begge anvender i hvert fald alias fra tnsnames.ora til datasource i connectstrengen.
Det jeg gerne ville have var en connectmetode a la Java thin client, som ikke kræver at SQL Net Client er installeret.
Har du en .NET oracle connection til at køre uden SQL Net Client installeret?
Avatar billede Slettet bruger
26. maj 2005 - 13:42 #8
Vi har førsøgt det, der hvor jeg arbejder - uden held, så såvidt jeg ved skal du med både .NET 1.1 OracleClient og Oracle ODP installere Oracle client software før det fungerer. Det skal du naturligt vis også med ODBC og OLEDB, argumentet for at anvende en at disse metoder er alene at det tillader anvendelse af ældre klient versioner end 8.1.7 ellers er både OracleClient og ODP langt mere funktionelle end de andre grænseflader.
Avatar billede erve Nybegynder
26. maj 2005 - 14:45 #9
kryptos: lægger du et svar - det er nemlig også min konklussion, som jeg gerne ville have bekræftet.
Avatar billede arne_v Ekspert
26. maj 2005 - 19:06 #10
Det lyder som om det er kun er thin JDBC driver der virker uden
client software installeret.

Så du skal nok have kontaktet Oracle og høre om det koster noget at
installere Oracle client på din ASP.NET server.

Jeg tror det faktisk ikke.

Hvis support ikke betyder noget og I ikke går i panik over ordet GPL (hvis
man kører Oracle er det dog næppe tilfældet), så er der en rigtig
dirty solution:

brug IKVM og thin JDBC driver

Jeg har lige testet med:

using System;
using java.lang;
using java.sql;

public class TestDB
{
    public static void Main(string[] args) {
        Class.forName("oracle.jdbc.OracleDriver");
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:Test", "xxxx", "xxxx");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM T1");
        while(rs.next())
        {
            int f1 = rs.getInt(1);
            string f2 = rs.getString(2);
            Console.WriteLine(f1 + " " + f2);
        }
    }
}

og det virker faktisk (eksempelt er banalt men hvis det virker så
virker resten sikkert også).
Avatar billede erve Nybegynder
28. maj 2005 - 13:36 #11
Det ser ellers smart ud, men vi har masser af Oracle licenser. Vi ville bare ikke installere SQLNet-clienten på serveren, hvis ikke det var nødvendigt.
Men din løsning kræver jo så også at vi skal installere IKVM-components, og så vil jeg nok heller bruge Oracl's egne drivere.
Avatar billede arne_v Ekspert
28. maj 2005 - 13:40 #12
Jep, men IKVM er ægte .NET XCOPY deploy,ent d.v.s. det er bare at kopiere .dll'erne ind i det rigtige
dir - ingen installations program som retter i registry og alt muligt
Avatar billede Slettet bruger
29. maj 2005 - 06:36 #13
luk og hold points selv - det var jo ikke rigtigt nogen løsning ;)
Avatar billede qualjyn Nybegynder
12. juli 2005 - 08:23 #14
Det skyldes at din .NET version ikke kan få adgang til oci.dll (og visse andre dll'er). Det du skal gøre er, at ændre ntfs permissions på din oracle_home\bin folder, og hvis det er asp.net der skal have adgang, så er det den bruger der er defineret i application pool der skal have read-access. Derefter skal du reboote - ved det lyder lamt - men det skal du altså. Min teori på hvorfor er, at oci.dll loades fra start af systemet, og lader til at beholde permissions fra startup indtil reboot :(

Anyways, dette skulle være løsningen - og hvis det ikke hjælper, så giv lyd :)

Og så kan du bare bruge System.Data.OracleClient (efter du har installeret en OracleClient på maskinen).
Avatar billede qualjyn Nybegynder
12. juli 2005 - 10:45 #15
Og OracleClient er free-to-use. Selvfølgeligt under forudsætning af at du overholder de øvrige licenspolitikker (antal named users etc)
Avatar billede qualjyn Nybegynder
18. juli 2005 - 08:06 #16
Ummm, hvis det ikke virker - eller du selv havde løst problemet, kan vi så ikke bare få lukket spørgsmålet?
Avatar billede erve Nybegynder
05. december 2005 - 09:59 #17
Lukkes
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
Computerworld tilbyder specialiserede kurser i database-management

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