vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
SP VB6 
Autor: Anno74
Datum: 30.04.07 19:26

Hallo,

ich durchlebe derzeit nen akurates Phaenomaen, welches ich mir nicht erklären kann.
Ich habe eine DB ( MS ACCESS *.mdb) Diese beinhaltet mehrere Spalten.
In meinem Tool greife ich via ADO auf die DB zu. Funktioniert soweit ganz gut.

nun baute ich eine Function ein, wo man Stored Proceduren (SP) speichern kann. Der Aufruf klappt soweit und ich bekomme keine Fehlermeldung!
Auch eine Auflistung der vorhanden SP klappt!

Wenn ich aber die DB schliesse und sie wieder neu starte, so bekomme ich immer angezeigt, das keine SP da waeren. Versuche ich nun eine SP neu anzulegen mit dem selben Name, wie ich es davor gemacht habe, so bekomme ich eine Fehlermeldung das die SP schon vorhanden sei.

Nach langem hin her bastelte ich mir fix nen Tool was mir die DB Struktur auflistet. Dabei stellte ich fest, das nur ab und wann einmal eine SP erstellt wird! Die anderen Proceduren legt er als VIEW ab!

Als Beispiel. Ich erstellt 10 SP ... dann habe ich 9 Views und mit viel Glueck 1 SP!
Weiss jemand woran das liegen kann?

Ich mein so schlimm ist das eigentlich nicht. Ich habe es nun so programmiert das alle SP und View abgefragt werden und diese angezeigt werden. Geht aber ist ne sehr unsaubere Lösung

Hier nun noch einmal der nötige Code

'Declaration im Modul
 
Public Con As New ADODB.Connection 'Connection
Public CatADO As New ADOX.Catalog 'ADOX Catalog
Public Cmd As New ADODB.Command 'ADO Command
 
'Functionen im Modul
 
'SP wird erstellt
Private Sub CreateSP
    Set Cmd.ActiveConnection = Con
    Set CatADO.ActiveConnection = Con
    If Trim(Text4.Text) <> "" And InStr(1, LCase(Text3.Text), "[parameter]", _
      vbBinaryCompare) > 0 Then
     If IsNumeric(Text4.Text) Then
      P = "PARAMETERS @IntVal INTEGER;"
     Else
      P = "PARAMETERS @TxtVal TEXT(255);"
     End If
      Cmd.CommandText = P & Text3.Text
    Else
     Cmd.CommandText = Text3.Text
    End If
    CatADO.Procedures.Append vData, Cmd
End Sub
 
'SP und View#s werden ausgelesen
Private Function GetSP as Variant
On Error GoTo ErrHandler
Dim i As Long
Dim vData As Variant
Dim Count As Long
 Set CatADO.ActiveConnection = Con
 Set Cmd.ActiveConnection = Con
 For i = 0 To CatADO.Procedures.Count - 1
  If i = 0 Then
   ReDim vData(0)
  Else
   ReDim Preserve vData(i)
  End If
  vData(i) = CatADO.Procedures.Item(i).Name
 Next i
 If IsArray(vData) Then
  Count = 1
 Else
  Count = 0
  End If
 For i = 0 To CatADO.Views.Count - 1
  If Count = 0 And i = 0 Then
   ReDim vData(0)
  Else
   ReDim Preserve vData(UBound(vData) + 1)
  End If
  vData(UBound(vData)) = CatADO.Views.Item(i).Name
 Next i
 If IsArray(vData) Then
GetSP=vdata
else
getSP=Empty
ErrHandler:
GetSP=Empty
End Function
MfG Alex
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SP VB61.094Anno7430.04.07 19:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel