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


Hallo Stefan,

in vielen (oder sehr vielen) Fällen dürfte das Zusammensetzen des SQL-Befehls aus Konstanten und Variablen die beste Wahl sein, wenn man das einmal pro Programmaufruf verwendet, ist es tatsächlich die günstigste Variante. Und wenn das deine momentane Aufgabe erledigt, ist das ja gut so. Wenn man einen solchen Zugriff z.B. in einer Schleife x-mal braucht für jeweils andere Parameter, dann ist die Version mit Parametern und Prepare sinnvoll, weil effektiver. Ich bin mir nicht sicher, ob ich das selbst schon mal in LibreOffice verwendet habe, anderswo mit Sicherheit, aber wenn das im Base-Handbuch sogar beschrieben ist, hat Robert das garantiert getestet. Wenn das bei dir nicht funktioniert, müsste man dem ggf. auf den Grund gehen. Ich will das jetzt auch nicht ins Blaue hinein weitertreiben, aber wenn das wieder aktuell wird, melde dich wieder.

Viele Grüße
Gerhard

Am 25.12.2020 um 23:23 schrieb Stefan Deutsch:
Hi Gerhard,Mein Problem war, dass das rowset mit dem prepare scheinbar nichts angefangen kann und 
als command den SQL-Befehl mit Platzhalter auszuführen scheint. Wenn ich anstelle des Platzhalters 
einen festen Wert eingefügt habe, hat er sich wie gewünscht verhalten. Auf die Idee, einfach 
mitmeinen SQL-Befehl zu bauen, war ich noch nicht gekommen. Danke!Viele Grüße Stefan--Diese 
Nachricht wurde von meinem Android Mobiltelefon mitWEB.DEMail gesendet.
Am 25.12.20, 19:25 schrieb Gerhard Weydtgerhard.weydt@t-online.de: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ürDieIdwobei 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üßeGerhard 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 einCommand übergeben, dass mit Platzhaltern ausgestattet ist, die ichvorher befülle. Geht das überhaupt? Oder 
geht nur der Weg, der imHandbuch S. 431 für das Arbeiten mit Platzhaltern beschrieben ist?Sub SubKat1_loeschenREM Verbindung zum FormularoForm =thisComponent.drawpage.forms.getByName("frm_Kategorie").getByName("frm_Subkategorie1") 
oConnection = oForm.activeConnection()stDataSourceName = ThisDatabaseDocument.TitlestDataSourceName = Left(stDataSourceName, len(stDataSourceName)-4)iRow = oForm.getByName("tabCtrl_SubKat1").RowSet.getRowotxtField 
=oForm.parent.getByName("tabCtrl_Kategorie").getByName("txtField_KatID")iEintrag = otxtField.getCurrentValue()REM SQL-Befehl vorbereitenstSQLRowSet = "SELECT * FROM ""tab_Sub_Kat_1"" 
WHERE""Sub_Kat_Fremd_ID"" = ?"oSQLRowSet = oConnection.prepareStatement(stSQLRowSet)oSQLRowSet.setInt(1, iEintrag)REM RowSet-Objekt erstellenoRowSet = 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 WithREM Löschen der 
ZeileoRowSet.absolute(iRow)oRowSet.deleteRowoForm.reloadEnd SubViele Grüße und frohe Weihnachten euch allen!Stefan Deutsch  -- Liste abmelden mit E-Mail an: 
users+unsubscribe@de.libreoffice.orgProbleme?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





--
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.