von hoffie » Mo, 17.01.2011 11:53
Hallo Leute,
auf meiner Suche nach einer Lösung zu meinem Problem, hab ich zwar schon einige Sachen hier im Forum gefunden, aber funtkioniert hat is jetzt leider noch nichts..... Desalb würde ich hier gerne folgende konkrete Frage an euch stellen:
Wie kann ich bei einer WHERE Bedingung in einer SELECT Abfrage eine Variable einbinden?
Ich lese eine Auswahl einer Combobox1 aus und möchte diesen String ("suchword") gerne als WHERE Bedingung verwenden. Diese Selektion verwende ich dann um die Combobox2 zu füllen.
sub ListeEinschraenken
wait(100)
Dim ComboBox2 as Object, aListe(), bListe()
Dim oSheet1 as object
Dim suchwort as string
'dim x(0,3) as string
oComboBox2 =odialog.getControl("ComboBox2")
Dim s
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Neue Datenbank5.1")
Connection = DataSource.GetConnection("","")
Statement = Connection.createStatement()
oComboBox1 = odialog.getControl("ComboBox1")
suchwort = oComBobox1.text
sStatement = "SELECT DISTINCT Event FROM Tabelle3 WHERE Meisterschaft = suchwort "
oSQLAnweisung = Connection.createStatement()
ResultSet = oSQLAnweisung.executeQuery(sStatement)
i=0
If not isNull (ResultSet) then
Do while ResultSet.Next
i= i+1
s = Resultset.getString(1) '&'Chr(13)
oComboBox2 = odialog.getControl("ComboBox2")
oComboBox2.removeItems(i-1, oComboBox2.getItemCount()) 'schränkt ein wie viele gespeichert werden
oComboBox2.addItem(s,-1) ' beeinflusst ab was für einem Datensatz gespeichert wird
Loop
end if
end sub
Wenn ich anstatt suchword einen festen Begriff verwende:
sStatement = "SELECT DISTINCT Event FROM Tabelle3 WHERE Meisterschaft = 'Formel 1' "
funktioniert alles.
Ich vermute, dass die Maskeirung meiner Variablen suchword bislang immer falsch war, habe bis jetzt schon ziemlich viele Sachen mit ' " & % usw. ausprobiert.
Hoffe man kann verstehen worin mein Problem liegt und jemand kann mir bei meiner Sache weiter helfen, Verzweiflung macht sich nämlich langsam breit bei mir.
Ich verwende eine MySQL Datenbank 5.1 unter OO 3.2 auf Windows 7 64bit. Meine Verbindung läuft denek ich sehr gut, bis jetzt gab es keine Problem mit Treibern oder Ähnlichem!
Vielen Dank schon mal
Gruß Peter
Hallo Leute,
auf meiner Suche nach einer Lösung zu meinem Problem, hab ich zwar schon einige Sachen hier im Forum gefunden, aber funtkioniert hat is jetzt leider noch nichts..... Desalb würde ich hier gerne folgende konkrete Frage an euch stellen:
Wie kann ich bei einer WHERE Bedingung in einer SELECT Abfrage eine Variable einbinden?
Ich lese eine Auswahl einer Combobox1 aus und möchte diesen String ("suchword") gerne als WHERE Bedingung verwenden. Diese Selektion verwende ich dann um die Combobox2 zu füllen.
sub ListeEinschraenken
wait(100)
Dim ComboBox2 as Object, aListe(), bListe()
Dim oSheet1 as object
Dim suchwort as string
'dim x(0,3) as string
oComboBox2 =odialog.getControl("ComboBox2")
Dim s
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Neue Datenbank5.1")
Connection = DataSource.GetConnection("","")
Statement = Connection.createStatement()
oComboBox1 = odialog.getControl("ComboBox1")
suchwort = oComBobox1.text
sStatement = "SELECT DISTINCT Event FROM Tabelle3 WHERE Meisterschaft = suchwort "
oSQLAnweisung = Connection.createStatement()
ResultSet = oSQLAnweisung.executeQuery(sStatement)
i=0
If not isNull (ResultSet) then
Do while ResultSet.Next
i= i+1
s = Resultset.getString(1) '&'Chr(13)
oComboBox2 = odialog.getControl("ComboBox2")
oComboBox2.removeItems(i-1, oComboBox2.getItemCount()) 'schränkt ein wie viele gespeichert werden
oComboBox2.addItem(s,-1) ' beeinflusst ab was für einem Datensatz gespeichert wird
Loop
end if
end sub
Wenn ich anstatt suchword einen festen Begriff verwende:
sStatement = "SELECT DISTINCT Event FROM Tabelle3 WHERE Meisterschaft = 'Formel 1' "
funktioniert alles.
Ich vermute, dass die Maskeirung meiner Variablen suchword bislang immer falsch war, habe bis jetzt schon ziemlich viele Sachen mit ' " & % usw. ausprobiert.
Hoffe man kann verstehen worin mein Problem liegt und jemand kann mir bei meiner Sache weiter helfen, Verzweiflung macht sich nämlich langsam breit bei mir.
Ich verwende eine MySQL Datenbank 5.1 unter OO 3.2 auf Windows 7 64bit. Meine Verbindung läuft denek ich sehr gut, bis jetzt gab es keine Problem mit Treibern oder Ähnlichem!
Vielen Dank schon mal
Gruß Peter