ich habe folgende Funktion:
Code: Alles auswählen
from mysql.connector import connect
def get_data_for_grid(host, port, user, password, database, sql):
with connect(
host=host, port=port, user=user, password=password, database=database
) as connection:
with connection.cursor() as cursor:
cursor.execute(sql)
return [
tuple((str(item) if item is not None else "") for item in row)
for row in cursor.fetchall()
]
ArrayA(Arryx(12,...),Arrayy(28,...),Arrayz(17,...))
Wenn der Parameter sql so beschaffen ist das nur eine Spalte der Datentabelle abgefragt wird (z.B. "SELECT `MeineSpalte` from `MeineTabelle`") enthalten die Unterarrays jeweils nur einen Wert, z.B. also:
ArrayA(Arryx(12),Arrayy(28),Arrayz(17))
Wie muss die Funktion abgeändert werden, damit Sie, in einem solchen Fall, ein Ergebnis der Struktur:
ArrayA(12,28,17)
zurückgibt?
Weitere Informationen:
die obige Funktion wird mittels Starbasic in LibreOffice aufgerufen wie folgt:
Code: Alles auswählen
oMasterScriptProviderFactory = createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
g_MasterScriptProvider = oMasterScriptProviderFactory.createScriptProvider("")
oScript = g_MasterScriptProvider.getScript("vnd.sun.star.script:mysqlgetdata2.py$get_data_for_grid?language=Python&location=user")
RS_Python = oScript.invoke(Array(DBHost,DBPort,DBUser,DBPass, NameDBInMySQL,"SELECT `MeineSpalte` from `MeineTabelle` ORDER BY `MeineSpalte` ASC"),Array(),Array())
Code: Alles auswählen
Dim tmparr(UBOUND(RS_Python))
For i = 0 To UBOUND(RS_Python)
tmparr(i) = RS_Python(i)(0)
Next i
Gruß
Stephan