Announcement

Collapse
No announcement yet.

Dim OBJ(2) as Object

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dim OBJ(2) as Object

    Hallo liebes Forum,

    vor kurzem habe ich mir von der Homepage von Peter Götz http://www.gssg.de/visbas.htm

    ein paar Visual-Basic Beispiele zum Thema DataGridView heruntergeladen.

    ich kann mit der Vereinbarung
    Code:
    Dim OBJ(2) AsObject
    nichts anfangen!
    Wer kann mir das erklären?

    Gruß
    Christian

    Code:
    PrivateFunction ReadDataTypes(ByVal TableName AsString) As OleDb.OleDbType()
    ' Gibt ein Array mit den OleDB-Datentypen der in der Tabelle "TableName" enthaltenen Felder,
    ' sortiert nach OrdinalPosition, zurück.
    Dim i AsInteger
    Dim DT As DataTable
    Dim DRows() As DataRow
    Dim DR As DataRow
    Dim TArray() As OleDb.OleDbType
    Dim OBJ(2) AsObject
    OBJ(2) = TableName
    ' Spalteninformationen für "Tabelle" holen
    DT = mCnn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Columns, OBJ)
    If DT.Rows.Count > 0 Then
    ' Nach Ordinal_Position sortierte DataRows-Auflistung holen
    DRows = DT.Select("", "ORDINAL_POSITION")
    ' TArray() für die Aufnahme der Datentypen der nach 
    ' Ordinalposition sortierten Felder dimensionieren
    ReDim TArray(DRows.GetUpperBound(0))
    ' TArray mit den Datentypen der Felder aus "Tabelle" füllen
    For i = 0 To TArray.GetUpperBound(0)
    DR = DRows(i)
    TArray(i) = CType(DR.Item("DATA_Type"), OleDb.OleDbType)
    Next i
    Else
    MessageBox.Show("Tabelle """ & mTableName & """ in" & ControlChars.CrLf & _
    mCnn.DataSource & ControlChars.CrLf & _
    "nicht gefunden!" & ControlChars.CrLf & ControlChars.CrLf & _
    "Prüfen Sie, ob Sie die richtige Datenbank geöffnet haben!", _
    GetExeName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    EndIf
    ' Rückgabewert
    ReadDataTypes = TArray
    EndFunction
    PublicFunction ReadTables(ByVal Cnn As OleDb.OleDbConnection) As DataTable
    Dim DT As DataTable
    Dim OBJ(3) AsObject
    OBJ(3) = "TABLE"
    DT = Cnn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, OBJ)
    ReadTables = DT
    EndFunction

  • #2
    Das ist doch offensichtliche eine VB-Frage. Bitte gehe damit künftig in das Unterforum VB.NET.

    "AsObject" ist ebenso offensichtlich ein Schreibfehler; da gehört das Leerzeichen dazwischen (wie Du es ja auch in der Überschrift angibst).

    Eine "Dim Xxx()" ist die Dimensionsangabe für ein Array.

    Für solche Fragen bietet sich die OpenBooks an, hier zu Visual Basic.

    Jürgen

    Comment


    • #3
      Hallo,

      Wer kann mir das erklären?
      die Methode GetOleDbSchemaTable der OleDbConnection-Klasse erwartet ein aus 4 Elementen bestehendes Array, wobei im 3. Element der Name der abzufragenden Tabelle übergeben werden muss. Die restlichen Array-Elemente sind null (nothing). Das Beispiel würde in C# so aussehen:

      Code:
      oleDbConnection1.Open();
      DataTable aDT = oleDbConnection1.GetOleDbSchemaTable(
        System.Data.OleDb.OleDbSchemaGuid.Columns,
      	new Object[] {null, null, "Tabellename", null});
      dataGrid1.DataSource = aDT.DefaultView;
      oleDbConnection1.Close();
      Über new Object[] {null, null, dataSet11.Tables[0].TableName, null} wird die Array-Instanz erzeugt und gleich initialisiert. In dem VB-Beispiel wurden dazu die beiden Zeilen Dim OBJ(2) As Object und OBJ(2) = TableName verwendet.

      Comment

      Working...
      X