Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
lakul
Newbie
Newbie

Anmeldedatum: 28.01.2010
Beiträge: 1

VB Programm Zugriff auf Oracle 11g DB
Verfasst am: 28.01.2010, 12:38

Hallo,

wir haben jahrelang ein VB Programm auf einem NT Server betrieben, welches auf eine Oracle 7.3 DB zugegriffen hat. Da der Server jetzt schlapp machte haben wir aufgerüstet und haben jetzt einen Server mit Windows Server 2008 und Oracle 11g zu laufen. Leider ist der Programmierer, welcher das Programm damals schrieb nicht mehr im Haus und keiner von uns hat Ahnung von VB. Das Programm wurde in VB 6 geschrieben.

Situation:

Server ist komplett eingerichtet und auch die Oracle DB läuft einwandfrei. Wenn man unser VB Programm öffnet kommt ein Fenster wo man die Login Daten für die DB eingeben muss. An dieser Stelle scheitert es leider. Das Programm meldet, dass es keine Verbindung zur DB bekommt.

Dieses Problem habe ich zumindest damit lösen können, dass ich den Teil

Code:
conORCL.Open "PROVIDER=MSDAORA; DATA SOURCE=ORADB", UserIdent, UserPwd


durch

Code:
Dim ConnString as string
ConnString = "Provider=MSDAORA.1 ; Password=myPassword; User ID=myUser ; Data Source = ORCL; Persist Security Info=True"
Dim objConn as new ADODB.Connection
objConn.open ConnString


ersetzt habe. Damit klappte zumindest erstmal der DB Zugriff, aber danach danach scheiterte es leider an den Zeilen ab

Code:
'Öffnen Recordset Stammdaten FORSTAMT]


dort meldet er dann immer "Fehler öffnen..."

Ich weiß, es ist sehr viel Code, aber ich hoffe Ihr könnte mir dennoch helfen.

Vielen Dank schonmal im Vorraus!!

OK, erstmal der Code:

Code:
Option Explicit
   
Private Function CheckError() As Boolean 'Fehltertest
 CheckError = False
 If InitError > 0 Then
  WorkShow Work, "Go", True
  INFO.Caption = "Es sind Fehler aufgetreten!" & Chr(13) & "(siehe Programmbeschreibung)"
  ProgressBar.Visible = False
  CheckError = True
 End If
End Function

Private Sub Form_Activate() 'Aktivieren Form
 On Error Resume Next
 InitError = 0
 Refresh
 WorkShow Work, "Stop", True
 
 'Öffnen Datenbank
 Set conORCL = New ADODB.Connection
 conORCL.ConnectionTimeout = 15
 conORCL.CursorLocation = adUseClient

 ProgressBar.Value = 1: Err.Clear
 If TypDatenbank = 1 Then
  Label1.Caption = "Öffnen ORACLE Datenbank": Work1.Caption = "öffnen...": Label1.Refresh: Work1.Refresh
  OWNER = "VFLUSER."
  conORCL.Open "PROVIDER=MSDAORA; DATA SOURCE=VFLDB", UserIdent, UserPwd
 Else
  Label1.Caption = "Öffnen lokale ACCESS Datenbank": Work1.Caption = "öffnen...": Label1.Refresh: Work1.Refresh
  OWNER = "VFLUSER_"
  conORCL.Open "PROVIDER=Microsoft.JET.OLEDB.4.0; DATA SOURCE=" & App.Path & "\VFLDBS.MDB", "Admin"
 End If
 
 If Err Then
         Work1.Caption = "Fehler Öffnen Datenbank [" & Err.Number & "]"
         InitError = InitError + 1: Err.Clear
        Else
         Work1.Caption = "Datenbank geöffnet"
        End If
 
 'Prüfen Nutzungsberechtigungen
 ProgressBar.Value = 2: Err.Clear
 Label2.Caption = "Prüfen Nutzerberechtigungen": Work2.Caption = "prüfen...": Refresh
 
 If UserIdent = "VFLUSER" Then 'Administrator
  UserName = "Administrator"
  UserPriv = "11111111111111111111111111111111111111111111111111" & _
             "11111111111111111111111111111111111111111111111111" & _
             "11111111111111111111111111111111111111111111111111" & _
             "11111111111111111111111111111111111111111111111111" '200
  Work2.Caption = "Nutzer Adminidstrator"
 Else                         'Nutzer
  Set DAT = New ADODB.Recordset
  DAT.Open "SELECT * FROM " & OWNER & "USERS WHERE USERID = '" & UserIdent & "'", conORCL
  UserName = DAT!USERLANG.Value
  UserPriv = DAT!PRIVILEG.Value
  If Err Then
   Work2.Caption = "Fehler Öffnen [" & Err.Number & "]"
   InitError = InitError + 1: Err.Clear
  Else
   Work2.Caption = "Nutzer OK"
   If DAT.RecordCount = 0 Then
    Work2.Caption = "Ungültiger Nutzer"
    InitError = InitError + 1: Err.Clear
   End If
  End If
  DAT.Close: Set DAT = Nothing
 End If
 
 If CheckError Then Exit Sub
 
 'Öffnen Recordset Stammdaten FORSTAMT
 ProgressBar.Value = 3: Err.Clear
 Label3.Caption = "Öffnen Stammdaten Forstämter": Work3.Caption = "öffnen...": Refresh
 Set FOA = New ADODB.Recordset
 FOA.Open "SELECT * FROM " & OWNER & "FORSTAMT ORDER BY FOANUMMER", _
          conORCL, adOpenDynamic, adLockOptimistic, adCmdText
 If Err Or FOA.RecordCount <= 0 Then
  Work3.Caption = "Fehler Öffnen [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work3.Caption = "Tabelle geöffnet"
 End If
 
 If CheckError Then Exit Sub
 
 'Öffnen Recordset Stammdaten REVIER
 ProgressBar.Value = 4: Err.Clear
 Label4.Caption = "Öffnen Stammdaten Reviere": Work4.Caption = "öffnen...": Refresh
 Set REV = New ADODB.Recordset
 REV.Open "SELECT * FROM " & OWNER & "REVIER ORDER BY VERSUCH", _
          conORCL, adOpenDynamic, adLockOptimistic, adCmdText
 If Err Or REV.RecordCount <= 0 Then
  Work4.Caption = "Fehler Öffnen [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work4.Caption = "Tabelle geöffnet"
 End If
 
 If CheckError Then Exit Sub
 
 'Öffnen Recordset Stammdaten PARZELLE
 ProgressBar.Value = 5: Err.Clear
 Label5.Caption = "Öffnen Stammdaten Parzellen": Work5.Caption = "öffnen...": Refresh
 Set PAZ = New ADODB.Recordset
 PAZ.Open "SELECT * FROM " & OWNER & "PARZELLE ORDER BY ID", _
          conORCL, adOpenDynamic, adLockOptimistic, adCmdText
 If Err Or PAZ.RecordCount <= 0 Then
  Work5.Caption = "Fehler Öffnen [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work5.Caption = "Tabelle geöffnet"
 End If
 
 If CheckError Then Exit Sub
 
 'Änderung Datumsformat
 ProgressBar.Value = 6: Err.Clear
 Label6.Caption = "Ändern Datumsformat [TT.MM.JJJJ]": Work6.Caption = "ändern...": Refresh
 If TypDatenbank = 1 Then conORCL.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY'"
 If Err Then
  Work6.Caption = "Fehler Befehlsausführung [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work6.Caption = "Datumsformat geändert"
 End If
 
 If CheckError Then Exit Sub
 
 'Öffnen Recordset Schlüssel KEY
 ProgressBar.Value = 7: Err.Clear
 Label7.Caption = "Öffnen Stammdaten Schlüssel": Work7.Caption = "öffnen...": Refresh
 Set KEY = New ADODB.Recordset
 KEY.Open "SELECT * FROM " & OWNER & "KEYS ORDER BY KEYTYP,KEYKURZ,KEYTEXT", _
          conORCL, adOpenDynamic, adLockOptimistic, adCmdText
 If Err Or KEY.RecordCount <= 0 Then
  Work7.Caption = "Fehler Öffnen [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work7.Caption = "Tabelle geöffnet"
 End If
 
 If CheckError Then Exit Sub
 
 'Laden Farbpalette
 ProgressBar.Value = 8: Err.Clear
 Label8.Caption = "Laden Farbpalette": Work8.Caption = "laden...": Refresh
 Set DAT = New ADODB.Recordset
 DAT.Open "SELECT * FROM " & OWNER & "COLORS ORDER BY NR", conORCL
 If Err Or DAT.RecordCount < 50 Then
  Work8.Caption = "Fehler Laden [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work8.Caption = "Farbpalette geladen"
  'Farben an Vektor zuweisen
  Erase Color: ReDim Color(50)
  Do While Not DAT.EOF
   Color(DAT!NR.Value) = DAT!COLORCODE.Value
   DAT.MoveNext
  Loop
 End If
 DAT.Close: Set DAT = Nothing

 'Laden Stichtag
 ProgressBar.Value = 9: Err.Clear
 Label9.Caption = "Laden Stichtag": Work9.Caption = "laden...": Refresh
 Set DAT = New ADODB.Recordset
 DAT.Open OWNER & "STICHTAG", conORCL
 If Err Or DAT.RecordCount < 1 Then
  Work9.Caption = "Fehler Laden [" & Err.Number & "]"
  InitError = InitError + 1: Err.Clear
 Else
  Work9.Caption = "Stichtag " & Format$(DAT!Tag.Value, "00") & "." & Format$(DAT!MONAT.Value, "00") & ". geladen"
  'Stichtag zuweisen
  Stichtag_Tag = DAT!Tag.Value
  Stichtag_Monat = DAT!MONAT.Value
 End If
 DAT.Close: Set DAT = Nothing

 If Not CheckError Then INFO.Caption = "Alle Module sind Fehlerfrei abgelaufen!"
 ProgressBar.Visible = False
 WorkShow Work, "Go", True
End Sub

Private Sub cmdOK_Click() 'Schalter OK
 Unload Me
End Sub

_________________
 
muerzi
Tutorial Leser
Tutorial Leser

Anmeldedatum: 03.08.2009
Beiträge: 45
Wohnort: Leoben


Verfasst am: 04.05.2010, 11:37

Hallo

Kanns leider nicht test vermute aber das

Code:
SELECT * FROM " & OWNER & "FORSTAMT


Durch

Code:
SELECT * FROM '" & OWNER & "'FORSTAMT


ersetzt werden sollte.
schau dir alle SQL-Querys an und überprüfe die '
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: oracle datenbank, zugriff, provider

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 869 09.06.2011, 12:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2432 06.03.2008, 20:19
Keine neuen Beiträge ListView speichern & laden 1242 05.08.2008, 12:32
Keine neuen Beiträge Registry & Co Fragen 1101 03.05.2007, 09:57
Keine neuen Beiträge Listbox speichern & laden 2047 22.03.2007, 20:25
 



[ Time: 0.2150s ][ Queries: 85 (0.0725s) ][ GZIP on - Debug on ]