Tabellen auslesen per SMO

13/03/2009 - 16:16 von Johannes Marstatt | Report spam
Hallo NG,

ich Versuche mit folgendem Code die Struktur einer Datenbank per SMO
auszulesen.

Dim srv As Server

Dim oDBS As Database

Dim oCol As New Column

srv = New Server(txtServer.Text)

oDBS = srv.Databases.Item(DBname)

For Each oCol In oDBS.Tables(TBName).Columns

Next

Das klappt auch wunderbar bis ich zu Tabellen komme die nicht im Schema dbo
sind, sondern in einem anderen.

Dann tritt bei Zugriff auf < For Each oCol In oDBS.Tables(TBName).Columns >
die Fehlermeldung unten auf. Jemand 'n idee?

Gruß Johannes





System.NullReferenceException wurde nicht behandelt.
Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Source="SMO"
StackTrace:
bei SMO.Form1.ReadTableInformations(String DBname, String TBName) in
C:\Dokumente und Einstellungen\jmarstatt\Eigene Dateien\Visual Studio
2008\Projects\SMO\SMO\Form1.vb:Zeile 89. bei
SMO.Form1.TreeView1_AfterSelect(Object sender, TreeViewEventArgs e) in
C:\Dokumente und Einstellungen\jmarstatt\Eigene Dateien\Visual Studio
2008\Projects\SMO\SMO\Form1.vb:Zeile 17. bei
System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e) bei
System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv) bei
System.Windows.Forms.TreeView.WmNotify(Message& m) bei
System.Windows.Forms.TreeView.WndProc(Message& m) bei
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam) bei
System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32
msg, IntPtr wParam, IntPtr lParam) bei
System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr
lparam) bei System.Windows.Forms.Control.ReflectMessageInternal(IntPtr
hWnd, Message& m) bei System.Windows.Forms.Control.WmNotify(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m) bei
System.Windows.Forms.ScrollableControl.WndProc(Message& m) bei
System.Windows.Forms.ContainerControl.WndProc(Message& m) bei
System.Windows.Forms.Form.WndProc(Message& m) bei
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam) bei
System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc,
IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam) bei
System.Windows.Forms.NativeWindow.DefWndProc(Message& m) bei
System.Windows.Forms.Control.DefWndProc(Message& m) bei
System.Windows.Forms.TreeView.WmMouseDown(Message& m, MouseButtons button,
Int32 clicks) bei System.Windows.Forms.TreeView.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam) bei
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) bei
System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32
dwComponentID, Int32 reason, Int32 pvLoopData) bei
System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32
reason, ApplicationContext context) bei
System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason,
ApplicationContext context) bei
System.Windows.Forms.Application.Run(ApplicationContext context) bei
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[]
commandLine) bei SMO.My.MyApplication.Main(String[] Args) in
17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81. bei
System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) bei
System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity, String[] args) bei
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei
System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei
System.Threading.ExecutionContext.Run(ExecutionContext executionContext,
ContextCallback callback, Object state) bei
System.Threading.ThreadHelper.ThreadStart()
InnerException:
 

Lesen sie die antworten

#1 Stefan Hoffmann
13/03/2009 - 16:28 | Warnen spam
hallo Johannes,

Johannes Marstatt wrote:
Das klappt auch wunderbar bis ich zu Tabellen komme die nicht im Schema dbo
sind, sondern in einem anderen.
Dann tritt bei Zugriff auf < For Each oCol In oDBS.Tables(TBName).Columns >
die Fehlermeldung unten auf. Jemand 'n idee?


Wenn ich hier mal rate: Hast du die notwendigen Berechtigungen auf
andere Schemata?

mfG

Ähnliche fragen