Fehlermeldung bei updateRow()

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

keyboard-billy
***
Beiträge: 53
Registriert: Mo, 27.11.2006 15:17
Wohnort: Nürnberg
Kontaktdaten:

Fehlermeldung bei updateRow()

Beitrag von keyboard-billy »

Hallo,

ich möchte in meiner Database Vorwahlen vom restlichen Teil der Telefonnummer mit einem Trenner (/) darstellen.
Da in meiner Database alle Telefonnummern als durchgängige Zahl (vom Datentyp varchar) abgelegt sind, habe ich mir eine kleine Update-Routine geschrieben:

Code: Alles auswählen

REM Determine database name
  oDoc = thisComponent
    
  sDatabaseName = Left( oDoc.Title, Len( oDoc.Title ) - 4 )
 
  sPhoneNr = InputBox( "Bitte geben Sie die zu ersetzende Vorwal ein:", "Ersetze Vorwahl" )
  iPhoneNrLen = Len( sPhoneNr )

  sSQL = "SELECT ""Kundenbestand"".""Telefon_privat"" " &_
         "FROM ""Kundenbestand"" " &_
         "WHERE ""Kundenbestand"".""Telefon_privat"" " &_
         "LIKE '%" & sPhoneNr & "%' "

  oRowSet = createUnoService( "com.sun.star.sdb.RowSet" )
  oRowSet.DataSourceName = sDatabaseName
  oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
  oRowSet.Command = sSQL
  oRowSet.execute()
  
  If Not isNull( oRowSet ) Then
    Do While Not oRowSet.IsRowCountFinal
      oRowSet.next()
       sPhoneNr = oRowSet.getString( 1 )
      'MsgBox( "Nummer vor der Änderung: " & sPhoneNr, 64, "Info" )
      sPhoneNr = Left( sPhoneNr, iPhoneNrLen ) & "/" & Mid( sPhoneNr, iPhoneNrLen + 1 )
      'MsgBox( "Nummer nach der Änderung: " & sPhoneNr, 64, "Info" )
      oRowSet.updateString( 1, sPhoneNr )
      oRowSet.updateRow()
    Loop
  End If
Bei der Letzten Zeile resultiert aus der Methode oRowSet.updateRow() folgende Fehlermeldung:

BASIC-Laufzeitfehler.
Es ist eine exception aufgetreten
Type:com.sun.star.sdbc.SQLException
Message: Fehler in der Funktionsfolge...


In der API steht zur funktion updateRow() folgende Beschreibung:
Description
updates the underlying database with the new contents of the current row. Cannot be called when on the insert row.
Irgendwie komm ich da infach nicht weiter.... :cry: ich füge doch keine Zeile ein - ich will doch nur den Inhalt einer "Zelle" ändern.... :evil:

Please, give me some help!

Greetz,
Billy
... im Prinzip ist alles einfach. Vorausgesetzt man weiss, wie's geht!