Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


Hallo Stefan,

was stellst du dir denn vor, was noch einfacher sein sollte als das in deinem Beispiel verwendete Vorgehen? Ich wüsste nur noch die Möglichkeit, den SQL-Befehl per Code zusammenzusetzen, also etwas wie:
stSQLRowSet = "SELECT * FROM ""tab_Sub_Kat_1"" WHERE
""Sub_Kat_Fremd_ID"" = " & deineVariabeFürDieId
wobei dann natürlich kein Prepare mehr nötig ist.
Das ist kürzer zu schreiben, wenn du das nur einmal (oder wenige Male) brauchst, wenn die SQL-Anweisung in einer Schleife öfters mit unterschiedlichen IDs ausgeführt wird, ist die Variante mit Prepare effektiver.

Viele Grüße
Gerhard

Am 25.12.2020 um 16:04 schrieb Stefan Deutsch:
Hallo zusammen,

ich hab mal wieder ein kleines Problem, bei dem ich nicht weiter komme.

Ich möchte in meinem Makro unten dem erstellten UnoService RowSet ein
Command übergeben, dass mit Platzhaltern ausgestattet ist, die ich
vorher befülle. Geht das überhaupt? Oder geht nur der Weg, der im
Handbuch S. 431 für das Arbeiten mit Platzhaltern beschrieben ist?

Sub SubKat1_loeschen

REM Verbindung zum Formular
    oForm =
thisComponent.drawpage.forms.getByName("frm_Kategorie").getByName("frm_Subkategorie1")
    oConnection = oForm.activeConnection()

    stDataSourceName = ThisDatabaseDocument.Title
    stDataSourceName = Left(stDataSourceName, len(stDataSourceName)-4)

    iRow = oForm.getByName("tabCtrl_SubKat1").RowSet.getRow

    otxtField =
oForm.parent.getByName("tabCtrl_Kategorie").getByName("txtField_KatID")
    iEintrag = otxtField.getCurrentValue()

REM SQL-Befehl vorbereiten
    stSQLRowSet = "SELECT * FROM ""tab_Sub_Kat_1"" WHERE
""Sub_Kat_Fremd_ID"" = ?"
    oSQLRowSet = oConnection.prepareStatement(stSQLRowSet)
    oSQLRowSet.setInt(1, iEintrag)

REM RowSet-Objekt erstellen
    oRowSet = createUnoService("com.sun.star.sdbc.RowSet")
    with oRowSet
        .DataSourceName = stDataSourceName
        .Command = stSQLRowSet
        .ResultSetConcurrency =
com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
        .ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
        .execute()
    End With

REM Löschen der Zeile
    oRowSet.absolute(iRow)
    oRowSet.deleteRow

oForm.reload
End Sub

Viele Grüße und frohe Weihnachten euch allen!

Stefan Deutsch




--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.