Zurück tutorials.de > Programming > .NET > .NET Datenverwaltung

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum
 
 
tutorials.de Buch-Verschenkaktion

  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
LinkBack Themen-Optionen Ansicht
Alt 27.05.08, 13:21   #1 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

Frage ODBC Verbindung zu Oracle Datenbank aufbauen

Hallo zusammen,

alles Suchen und Finden hat mir leider nicht geholfen.
Wie genau kann ich unter Verwendung einer vorhandenen ODBC-Datenquelle (Windows, System-DSN) mit VB.Net (MS VB 2008 Express) auf jene Oracle-Datenbank zugreifen?
Ich möchte z.B. eine ListBox mit einem Abfrageergebnis befüllen.

Geändert von deusfalsus (27.05.08 um 13:58 Uhr).
  deusfalsus ist offline  
 
Alt 27.05.08, 15:30   #2 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Wieso verwendest du nicht ODP.NET?
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
Alt 27.05.08, 15:42   #3 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Weil ich nicht weiß, wovon Du da schreibst.
Ich dachte, es wäre sinnvoll, den System-DSN zu verwenden, da dieser auf allen Client-PCs hier vorhanden ist.
Mein Ansatz derzeit:
vb Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
Dim conn As Odbc.OdbcConnection
Dim da As Odbc.OdbcDataAdapter
Dim ds As Data.DataSet
Dim tab As Data.DataTable
Dim sConnString As String = _
       "DSN=xxx_xx_xxxxx;" & _
       "Uid=xxxxx;" & _
       "Pwd=xxxxx"
 
conn = New Odbc.OdbcConnection(sConnString)
conn.Open()
sql = "SELECT ....;"
da = New Odbc.OdbcDataAdapter(sql, conn)
ds = New DataSet()
da.Fill(ds)
Geht noch weiter, aber bereits beim fill bekomme ich die Meldung "ERROR [42S02] [Oracle][ODBC][Ora]ORA-00942: Tabelle oder View nicht vorhanden".
Am sql-String kanns nicht liegen. Das ist extra zum Testen ein ganz einfacher und auch überprüft.

Für besser Ansätze bin ich offen.
  deusfalsus ist offline  
 
Alt 27.05.08, 20:49   #4 (permalink)
.NET / ITIL / SQL
 
Benutzerbild von Nico Graichen tutorials.de Premium-User 
 
Registriert seit: Dec 2003
Ort: Pulheim (NRW)
Beiträge: 3.083
Renommee-Modifikator: 29
Nico Graichen ist ein wunderbarer Anblick Nico Graichen ist ein wunderbarer Anblick Nico Graichen ist ein wunderbarer Anblick Nico Graichen ist ein wunderbarer Anblick Nico Graichen ist ein wunderbarer Anblick

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Was Norbert meint ist der Oracle DataProvider for .NET.

Quasi das was MS für den SQL Server im .NET-Framework mitliefert hier speziell für Oracle.
Den DataProvider kannst du bei der Client-Installation von Oracle auswählen und muss bei deinem Projekt anschließend die ansprechenden Assemblies referenzieren.

die Dokus dafür gibts unter http://www.oracle.com/technology/doc...net/index.html
__________________
Grüße Nico
----------------------
Xing
----------------------
Zitat:
Zitat von unbekannt
Es ist nicht das Essen zwischen Weihnachten und Neujahr, das dick macht, sondern das Essen zwischen Neujahr und Weihnacht
Zitat:
Zitat von Mark Twain (1835-1910)
Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
Zitat:
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison
  Nico Graichen ist offline  
 
Alt 27.05.08, 22:05   #5 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Den Oracle DataProvider for .NET werd ich mir mal anschauen.
Ist davon abgesehen irgend etwas mit meinem jetzigen Ansatz faul? Ist von der Variante generell abzuraten? Wenn ja: Warum?
Muss ich für den Oracle DataProvider auf den Clients, auf denen mein Programm mal laufen soll, zusätzliche Installationen vornehmen? Der DSN ist nämlich überall vorhanden und ich dachte, das käme mir zu Pass.
  deusfalsus ist offline  
 
Alt 28.05.08, 08:52   #6 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Was ODP.NET ist, hätte sich leicht durch eine Google-Query herausfinden lassen.

ODP.NET ist auf die Verwendung durch .NET in Verbindung mit einem Oracle-DBMS zugeschnitten. Daher ist das Teil auch wesentlich performanter. Zudem gibt's im Falle eines Fehlers auch aussagekräftigere Meldungen als über ODBC.

ODP.NET läuft nur auf Rechnern, auf denen auch der Client installiert ist (muss aber wohl generell bei Oracle der Fall sein). D.h. es wäre möglicherweise (nicht nicht schlauerweise bereits installiert) nachinstalliert werden. D.h. das Teil greift dann auch auf die installierte Konfiguration zurück.
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
Alt 28.05.08, 09:36   #7 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Zitat:
Zitat von Norbert Eder Beitrag anzeigen
Was ODP.NET ist, hätte sich leicht durch eine Google-Query herausfinden lassen.
Wenn ich etwas nicht kenne, kann ich auch nicht bei Google danach suchen. Also spar Dir Deine selbstgefälligen Bemerkungen bitte.

Der ODP.Net kommt für mich nicht infrage, da er a) bei mir nicht vorhanden ist und ich b) nicht auf allen Clients nachinstallieren kann.

Kann mir denn jemand erklären, wie ich mittels ODBC, bzw System-DSN auf meine Datenbank komme? Wo liegt der Fehler in meinem Code (s.o.)?
Was genau sagt mir die Fehlermeldung?
Wenn ich im Debug-Modus mir den Inhalt von "conn" anschaue, ist "Database" immer leer. Allerdings kann ich diesen Wert nicht belegen (zumindest weiß ich nicht, wie). Über den Connection-String kommts nicht an und direkt per conn.Database="..." erhalte ich die Meldung, der Wert sei readonly.
  deusfalsus ist offline  
 
Alt 28.05.08, 10:12   #8 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Wenn ich etwas nicht kenne, kann ich auch nicht bei Google danach suchen. Also spar Dir Deine selbstgefälligen Bemerkungen bitte.
Stimmt, ODP.NET reicht nicht aus, um ihn als Suchbegriff in die Suchmaschine deiner Wahl einzugeben. Ich vergaß.

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Der ODP.Net kommt für mich nicht infrage, da er a) bei mir nicht vorhanden ist und ich b) nicht auf allen Clients nachinstallieren kann.
Ad b) Zuviele Clients, Systemvorgaben etc?

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Kann mir denn jemand erklären, wie ich mittels ODBC, bzw System-DSN auf meine Datenbank komme? Wo liegt der Fehler in meinem Code (s.o.)?
Was genau sagt mir die Fehlermeldung?
Wenn ich im Debug-Modus mir den Inhalt von "conn" anschaue, ist "Database" immer leer. Allerdings kann ich diesen Wert nicht belegen (zumindest weiß ich nicht, wie). Über den Connection-String kommts nicht an und direkt per conn.Database="..." erhalte ich die Meldung, der Wert sei readonly.
Dein Connectionstring sollte eigentlich passen. Kann es sein, dass du den DSN-Wert falsch eingetragen hast bzw. den falschen Wert nimmst?

Hier kannst du dir auch noch ein Code-Snippet zu dem Thema ansehen. Vielleicht hilft dir das weiter.
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
Alt 28.05.08, 10:30   #9 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Zitat:
Zitat von Norbert Eder Beitrag anzeigen
Stimmt, ODP.NET reicht nicht aus, um ihn als Suchbegriff in die Suchmaschine deiner Wahl einzugeben. Ich vergaß.
Was soll das? Wenn ich etwas nicht kenne, kann ich nicht danach suchen!
Soll ich bei der Suchmaschine meiner Wahl etwa "der Begriff den alle außer mir kennen" eingeben? Bitte erst überlegen, dann Großkotzerei abschalten und dann schreiben.
Ich gehe davon aus, dass Leute, die hier antworten, auf dem Gebiet besser sind als ich. Sonst bräuchte ich ja nicht fragen. Du brauchst Deine Überlegenheit also nicht dauernd raushängen lassen.

Zitat:
Zitat von Norbert Eder Beitrag anzeigen
Ad b) Zuviele Clients, Systemvorgaben etc?
Ist zwar irrelevant, aber es liegt an der Zahl der Clients (ca 5000).

Zitat:
Zitat von Norbert Eder Beitrag anzeigen
Dein Connectionstring sollte eigentlich passen. Kann es sein, dass du den DSN-Wert falsch eingetragen hast bzw. den falschen Wert nimmst?
Als DSN-Wert nehme ich den Bezeichner aus Verwaltung\Datenquellen\SystemDSN.
In einem VB-Makro an anderer Stelle funktioniert es damit. Ist aber VBA und nicht .NET


Zitat:
Zitat von Norbert Eder Beitrag anzeigen
Hier kannst du dir auch noch ein Code-Snippet zu dem Thema ansehen. Vielleicht hilft dir das weiter.
Da ich nicht mit C# arbeite, sondern VB, komme ich damit nicht weiter.
  deusfalsus ist offline  
 
Alt 28.05.08, 10:40   #10 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Was soll das? Wenn ich etwas nicht kenne, kann ich nicht danach suchen!
Soll ich bei der Suchmaschine meiner Wahl etwa "der Begriff den alle außer mir kennen" eingeben? Bitte erst überlegen, dann Großkotzerei abschalten und dann schreiben.
Ich gehe davon aus, dass Leute, die hier antworten, auf dem Gebiet besser sind als ich. Sonst bräuchte ich ja nicht fragen. Du brauchst Deine Überlegenheit also nicht dauernd raushängen lassen.
Ersetze den Teil "der Begriff den alle außer mir kennen" mit "ODP.NET", der von mir auch genannt wurde und schon hättest du nachlesen können, was das ist.

Ergo bist du mit überlegen und eventuellem Nachlesen an der Reihe

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Ist zwar irrelevant, aber es liegt an der Zahl der Clients (ca 5000).
Ist nicht irrelevant. Hättest du als Antwort 2 gegeben, dann wäre ODP.NET durchaus eine Alternative. Bei 5000 natürlich angesichts des Rollout-Aufwandes eher nicht.

Zitat:
Zitat von deusfalsus Beitrag anzeigen
Da ich nicht mit C# arbeite, sondern VB, komme ich damit nicht weiter.
Mit dem Reflector kannst du dir beispielsweise C# Code auch als VB.NET Code (oder MSIL, C++.NET etc.) anzeigen lassen. Dies hilft dir auch Source zu übersetzen und für dich lesbarer zu machen. Dazu einfach kopieren, eine ClassLibrary anlegen, Klasse anlegen, einfügen, kompilieren und die Assembly anschließend im Reflector öffnen und "Anzeigeprogrammiersprache" auswählen. Voilà.
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
Alt 28.05.08, 11:23   #11 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Ich bin jetzt auf dem Stand, dass die Connection wohl steht (sonst würde "conn" nicht u.a. die Serverversion erkennen).
Das Problem ist wohl, dass die Tabelle/n nicht bekannt ist/sind.
Muss ich die irgendwo explizit deklarieren? Wie?
  deusfalsus ist offline  
 
Alt 28.05.08, 11:27   #12 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Die Tabellen definierst du ja in deinen DML-Statements. Das jedoch sein kann ist, dass du ein Schema angeben musst. Am besten die SQL-Anweisungen aus dem VB-Script, welches dir zur Verfügung steht, überprüfen ob dort etwas wie:
Code:
SELECT * FROM irgendwas.Tabellenname
vorkommt.
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
Alt 28.05.08, 11:51   #13 (permalink)
Mitglied Gold
 
Benutzerbild von deusfalsus  
 
Registriert seit: Jan 2003
Ort: Jena (Thüringen)
Beiträge: 241
Renommee-Modifikator: 0
deusfalsus hat eine blütenweiße Weste

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Also mein SQL-String ist nach folgendem Schema gestrickt:

SELECT Feldname FROM Tabellenname WHERE ...

Habs auch probiert mit:

SELECT Tabellenname.Feldname FROM Tabellenname WHERE ...

Wenn ich es folgender Weise versuche:

SELECT 'Tabellenname'.'Feldname' FROM 'Tabellenname' WHERE ...

Kommt die Meldung "Schlüsselwort FROM nicht an erwarteter Stelle gefunden"
Setze ich Klammern

SELECT ('Tabellenname'.'Feldname') FROM 'Tabellenname' WHERE ...

Kommt die Meldung "rechte Klammer fehlt"


Bei
SELECT * FROM irgendwas.Tabellenname
Was müsste denn für "irgendwas" stehen?
  deusfalsus ist offline  
 
Alt 28.05.08, 12:30   #14 (permalink)
Mitglied Brokat
 
Benutzerbild von FwDonnerbalken  
 
Registriert seit: May 2005
Beiträge: 321
Renommee-Modifikator: 11
FwDonnerbalken ist ein sehr geschätzer Mensch

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Wow, jetzt habe ich mich durch diesen gesamten Threadmarathon gelesen...

gut, ich selbst ziehe in einer Anwendung ebenfalls Daten aus einer Oracle-Datenbank. Dieses "irgendwas" bezeichnet ein Schema in Oracle. Das was man bei MSSQL etc. aus Datenbank versteht ist in Oracle allgemein als Schema zu verstehen. Da man soweit ich weiß bei der Verbindung kein Standardschema angeben kann, muss man den Schemanamen durch einen Punkt getrennt dem Tabellennamen vorranstellen.

Soweit ich mich erinnere (ich habe das jedoch noch nie gemacht) kann man dem Datenbankbenutzer ein Standardschema angeben. Damit sollte man dann ohne diesen vorrangestellten Schemanamen auf die TAbellen zugreifen können.

Hinweis: Wenn du Tool wie den kostenlosen SQL Developer von Oracle benutzt, organisiert es diese Schemanamen als Benutzernamen. Schau es dir mal an!
__________________
Gruß,
Sebastian

Mein XING Profil

Hilfreiche Antworten bitte bewerten!
  FwDonnerbalken ist offline  
 
Alt 28.05.08, 13:18   #15 (permalink)
Moderator
 
Benutzerbild von Norbert Eder tutorials.de Moderator 
 
Registriert seit: Feb 2004
Ort: Österreich / Graz
Beiträge: 5.109
Renommee-Modifikator: 34
Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett

AW: ODBC Verbindung zu Oracle Datenbank aufbauen

Zitat:
Zitat von FwDonnerbalken Beitrag anzeigen
Dieses "irgendwas" bezeichnet ein Schema in Oracle. Das was man bei MSSQL etc. aus Datenbank versteht ist in Oracle allgemein als Schema zu verstehen.
Das ist nicht richtig. Ein Schema ist eine Sammlung von Datenbanken und allem was dazu gehört. Ist (eventuell abhängig von einigen Funktionalitäten) gleichzusetzen mit dem Schema beim MSSQL.

Das heißt auch weiters zur Fehlerfindung: Wenn der User mit dem du dich anmeldest kein Defaultschema zugewiesen bekam, dann kannst du auf die gewollte Datenbank nicht zugreifen, da sie schlichtweg nicht gefunden wird (weil einem Schema zugewiesen).

Diese muss so ausgewählt werden. Wie du das unter Oracle machen kannst, ohne die Datenbank im ConnectionString anzugeben kann ich dir jetzt ad hoc nicht sagen. Oracle is not my home and castle.
__________________
Microsoft MVP - Client App Dev

.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
Das Blog über .NET, C# und mehr :: The .NET Blog :: WPF Blogger :: .NET BlogBook
  Norbert Eder ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
Verbindung MS-Accsess nach Oracle via ODBC oracle-dreamer Relationale Datenbanksysteme 0 07.05.07 14:19
ODBC Verbindung zu Firebird Djunix Relationale Datenbanksysteme 0 15.03.07 09:25
Verbindung zu Oracle-Datenbank WIK-Lars Swing, Java2D/3D, SWT, JFace 1 27.10.06 10:56
[c++ .Net] Datenbank verbindung aufbauen Halcom .NET Windows Forms 1 15.06.06 12:54
VErbindung zu einer Oracle Datenbank via jdbc--> FEhlermeldung lindin Java 1 16.09.04 14:11
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 101
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 224
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 114
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 83
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 163
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 75,00%
60 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 25,00%
20 Stimmen
Stimmen gesamt: 80
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0 ©2009, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,22883 Sekunden mit 27 queries