von keyboard-billy » Di, 02.03.2010 20:07
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....

ich füge doch keine Zeile ein - ich will doch nur den Inhalt einer "Zelle" ändern....
Please, give me some help!
Greetz,
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]
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
[/code]
Bei der Letzten Zeile resultiert aus der Methode oRowSet.updateRow() folgende Fehlermeldung:
[i]BASIC-Laufzeitfehler.
Es ist eine exception aufgetreten
Type:com.sun.star.sdbc.SQLException
Message: Fehler in der Funktionsfolge...[/i]
In der API steht zur funktion updateRow() folgende Beschreibung:
[quote]Description
updates the underlying database with the new contents of the current row. Cannot be called when on the insert row. [/quote]
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