DB Verbindung | Abfrage in Array - Index Fehler
Verfasst: Mo, 12.09.2011 16:15
Hallo ich habe zwei Fragen.
1. Kann ich eigentlich eine Verbindung zu einer PostgreSQL Datenbank aufbauen ohne Base als Datenquelle zu nutzen? Denn in Base habe ich eine Verbindung hergestellt aber ich kann nur aus der Datenbank lesen und nicht schreiben oder updaten.
2. Ich habe dieses Makro, welches auf die Datenbank zugreift und die Abfrage ausführt. In dem Dialog ist ein Textfeld und ein Listenfeld. Und bei jeder Veränderung des Textfeldes wird die Abfrage ausgeführt. Es soll eben nach Einträgen gesucht werden. Aber es kommt oft vor wenn ich was suche und Buchstaben wieder lösche das der Fehler kommt Index außerhalb des Definierten Bereichs. Woran liegt das?
1. Kann ich eigentlich eine Verbindung zu einer PostgreSQL Datenbank aufbauen ohne Base als Datenquelle zu nutzen? Denn in Base habe ich eine Verbindung hergestellt aber ich kann nur aus der Datenbank lesen und nicht schreiben oder updaten.
2. Ich habe dieses Makro, welches auf die Datenbank zugreift und die Abfrage ausführt. In dem Dialog ist ein Textfeld und ein Listenfeld. Und bei jeder Veränderung des Textfeldes wird die Abfrage ausgeführt. Es soll eben nach Einträgen gesucht werden. Aber es kommt oft vor wenn ich was suche und Buchstaben wieder lösche das der Fehler kommt Index außerhalb des Definierten Bereichs. Woran liegt das?
Code: Alles auswählen
rem-------------------------------------------------------------------------------------------------------------------------------------Dialog Starten
Dim oDialog as Object
Dim DatabaseContext As Object
Dim DataSource As Object
Dim Zaehler AS Integer
Public eLokal
Sub StammdatenDialog
DialogLibraries.LoadLibrary("Befragungsbogen")
oDialog = createUnoDialog(DialogLibraries.Befragungsbogen.DialogStammdaten)
OS = GetGUIType()
oDialog.execute()
End Sub
Sub DB
If OS = 1 Then 'Windows
DBurl=converttourl("Z:\Programme\Vorlagen für Makros\Datenbankverbindung Testserver.odb")
ElseIf OS = 4 Then 'Unix
DBurl=converttourl("/media/transfer/Programme/Vorlagen für Makros/Datenbankverbindung Testserver.odb")
End IF
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(DBurl)
oCon = DataSource.GetConnection("","")
End Sub
Sub StammdatenAnzeige
Call DB
eLokal = oDialog.getControl("EingabeLokal").text
oStatement = oCon.createStatement()
oListenAbfrage = oStatement.executeQuery("SELECT ""name"" FROM ""public"".""outlet"" WHERE UPPER(""name"") LIKE UPPER('%"& eLokal &"%')")
aListe = array()
Zaehler = 0
If not isNull(oListenAbfrage) Then
Do while oListenAbfrage.Next
ReDim Preserve aListe(Zaehler)
aListe(Zaehler) = oListenAbfrage.getString(1)
Zaehler = Zaehler + 1
Loop
End IF
aLokal = oDialog.getControl("AusgabeLokal")
aLokal.removeItems(0, aLokal.getItemCount())
aLokal.addItems(aListe, 1)
End Sub