Seite 1 von 1

Funktion ändern Problem

Verfasst: Di 18. Sep 2018, 21:17
von Alletkla
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

Re: Funktion ändern Problem

Verfasst: So 23. Sep 2018, 12:03
von gogo
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)

Re: Funktion ändern Problem

Verfasst: Di 25. Sep 2018, 09:43
von Alletkla
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 :)