none
Problem mit Zugriff PowerShell auf ADODB - Daten RRS feed

  • Allgemeine Diskussion

  • Problem mit Zugriff PowerShell auf ADODB - Daten

    Hallo zusammen,
    habe ein Problem mit dem Zugriff von Powershell auf einen ADODB - Recordset.
    Mir gehen so langsam die Ideen aus, was die Ursache ist und vor allen dingen, wie mas das Problem beheben kann.

    Einige Randbedingungen
     - Windows 10 10.0.17134
     - Windows PowerShell ISE Host 5.1.17134.228
     - ADODB - Connectstring
       Provider=Microsoft.Jet.OLEDB.4.0; Data Source=
       Provider=Microsoft.ACE.OLEDB.12.0;Data Source=
     - Access-Datenbank *.accdb / *.mdb

    Schritte in dem Programmablauf
     - Datenbank
       Tabelle: tEav_Object
         db_intEavObjId      AutoWert
         db_strEavObjDisplay Text(64)
         db_strEavObjName    Text(64)
        db_intEavTypeId      Long
        ...
     - Aufbau Connection
      $myDBs = [ClassDbs]::new()
      ..
      $this.objConnection = New-Object -comobject ADODB.Connection
      [Object] $objRecordset = New-Object -comobject ADODB.Recordset
      $objRecordset.Open($strSqlCmd, $this.objConnection,$this.adOpenStatic,$this.adLockOptimistic)
      $objRecordset.AddNew()

      Zuweisung über VAriable vom Typ int
        $objRecordset.Fields("db_intEavTypeId").Value = $this.intEavTypeIdPath (hat den Wert 1) 
        --> kein Problem

      Zuweisung über Literal
        #$objRecordset.Fields("db_strEavObjName").Value = "ABC" 
        --> kein Problem

      Zuweisung über Variable
        [String] $tstString = "ABC"
        $objRecordset.Fields("db_strEavObjName").Value = $tstString
        Fehlermeldung
          Die angegebene Umwandlung ist ungültig.
          In P:\Klaus\PowerShell\_ps_main\_ps_Script\tst_msacc_class03.ps1:178 Zeichen:5
          +     $objRecordset.Fields('db_strEavObjName').Value = $tstString
          +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              + CategoryInfo          : OperationStopped: (:) [], InvalidCastException
              + FullyQualifiedErrorId : System.InvalidCastException 
      Untersuching Variable
        [DBG]: PS C:\Users\Klaus.MI21A>> $tstString.gettype()
        IsPublic IsSerial Name                                     BaseType
        -------- -------- ----
        True     True     String                                   System.Object
        [DBG]: PS C:\Users\Klaus.MI21A>>     
      Untersuching Feld RecordSet
        [DBG]: PS C:\Users\Klaus.MI21A>> $objRecordset.Fields("db_strEavObjName").GetType()
        IsPublic IsSerial Name                                     BaseType
        -------- -------- ----
        True     False    __ComObject                              System.MarshalByRefObject
        [DBG]: PS C:\Users\Klaus.MI21A>> 

    Hat jemand einen eine Idee ?


    Sonntag, 11. November 2018 17:43