BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Funktion ändern Problem

Alles zur Programmierung im LibreOffice.
Antworten
Alletkla
Beiträge: 23
Registriert: Di 15. Mai 2018, 15:54

Funktion ändern Problem

Beitrag von Alletkla » Di 18. Sep 2018, 21:17

Hi Community, ich hoffe bei diesem Problem, kann mir jemand helfen. Die anderen waren anscheinend zu speziell.

Ich habe eine Funktion "getSQL" definiert

Code: Alles auswählen

Function getSQL(sSQL as String)
Dim Qu
	Qu = ThisDataBaseDocument.CurrentController.ActiveConnection.CreateStatement.executeQuery(sSQL)
	Qu.next
	Msgbox(Count(Qu))
	getSQL = Qu.getstring(1)
End Function
Ich wollte diese nun erweitern, dass ich auch beliebig viele Spalten abfragen kann. Also z.B. mit 1 Statement ein Array mit 3 Strings durch die Funktion erhalte.


ändere ich aber die Funktion zu:

Code: Alles auswählen

Function getSQL(Optional Co, sSQL as String)
erhalte ich eine Fehlermeldung ich hätte diese Funktion bereits anders definiert.? Diese verschwindet, wenn ich die Zugriffe auf diese Funktion lösche????

Ich kann die Funktion also ohne Fehlermeldung so definieren, aber sobald ich sie aufrufen will, sagt mir Basic, ich hätte diese bereits anders definiert :/

Danke

gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

Re: Funktion ändern Problem

Beitrag von gogo » So 23. Sep 2018, 12:03

Der Fehler passiert beim Kompilieren des Moduls. Du hast schon irgendwo "Function getSQL(" stehen.
Benenne mal getSQL( in getSQLX( um...
Das bezieht sich immer nur auf ein Modul, Du kannst in unterschiedlichen Modulen gleichnamige Funktionen haben, die stören sich nicht, aber du kannst Dir nicht immer sicher sein welche Funktion der Interpreter benutzt, daher in solchen Fällen immer mit Modulnamen aufrufen... Modul1.Test(), Modul2.Test()

weiters: optionale Argumente müssen nach den obligaten stehen.
Versuch' mal

Code: Alles auswählen

Function getSQL(sSQL, optional Co)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Alletkla
Beiträge: 23
Registriert: Di 15. Mai 2018, 15:54

Re: Funktion ändern Problem

Beitrag von Alletkla » Di 25. Sep 2018, 09:43

Danke gogo,
also, dass eine Funktion nur ein mal vorkommen darf, war mir durchaus bewusst. Um nicht immer diesen Modulaufruf zu benötigen vermeide ich daher in kleinen Projekten doppelte Bezeichnungen selbst in verschiedenen Modulen.

Allerdings lag das Problem anscheinend bei der Reihenfolge von optionalen und obligaten Argumenten. Danach funktionierte es reibungslos.

Vielen dank :)

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten