Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Ändern der Feature Table zur Laufzeit


2 replies to this topic

Merrow

Merrow
  • Full Members
  • 5 posts

Posted 05 January 2005 - 11:29

Hallo zusammen!
Ich möchte gerne die Feature Tabelle des Setups während der Laufzeit bearbeiten.
Dazu hab ich eine VBS Funktion geschrieben:

Public Function setFeatureDisplay
On Error Resume Next

Dim database, view, sql, record, display

logMessage "enter setFeatureDisplay"

sql = "SELECT * FROM `Feature` WHERE `Feature`='Administration_5.1'"

Set database = Session.Database
Set view = database.OpenView(sql)

view.Execute

If view Is Nothing Then
Set database = Nothing
MsgBox "view Is Nothing Exit Function"
Exit Function
End If

Set record = view.Fetch

If record Is Nothing Then
MsgBox "record Is Nothing Exit Function"
Exit Function
End If

record.IntegerData(5) = 0
display = record.IntegerData(5)
MsgBox "found: display=" & display

view.Modify 2, record
view.Close

Set record = Nothing

MsgBox "Error: " & view.GetError

database.Commit

MsgBox "!!!!! das was jetzt kommt macht das selbe wie oben nur zur kontrollausgabe!!!!!"

sql = "SELECT * FROM `Feature` WHERE `Feature`='Administration_5.1'"

Set database = Session.Database
Set view = database.OpenView(sql)

view.Execute
Set record = view.Fetch

display = record.IntegerData(5)

MsgBox "found: display=" & display

setFeatureDisplay = ReturnSuccess
End Function


Wenn ich diese nun aufrufe scheint der Record ordungsgemäßt geändert worden zu sein.

Wenn ich jedoch die SQL-Abfrage wiederhole bekomme ich wieder den ursprünglichen wert geliefert.

Ich denke also das der Record nicht richtig in dem View oder in der DB gespeichert wird. Nur weiß ich nicht was ich vergessen haben könnte.

Vielen Dank schonmal und Gruß
Jens

Edited by Merrow, 05 January 2005 - 14:51.


Merrow

Merrow
  • Full Members
  • 5 posts

Posted 05 January 2005 - 14:06

seht Ihr auch keinen Fehler?
Ist meine Ausführung zu kurz?

Edited by Merrow, 05 January 2005 - 14:52.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 07 January 2005 - 10:19

QUOTE
seht Ihr auch keinen Fehler?
Ist meine Ausführung zu kurz?
Nein, aber es ist noch Urlaubszeit. Etwas Geduld bitte smile.gif
QUOTE
database.Commit
Du kannst die Datenbank der laufenden Installation nicht dauerhaft ändern, sondern nur temporär. database.Commit geht nur, wenn du die msi Datei von aussen aufmachst um Änderungen daran vorzunehmen und diese dann zu speichern.
In einer Custom Action kannst du TEMPORARY Einträge hinufügen. Das Ändenr von Einträgen, die in der .msi Datei vorhanden sind, ist selbst temporär problematisch und funktioniert nach meiner Erfahrung normalerweise nicht. Als Workaround müsstest du also den Eintrag in der Feature Tabelle zu Laufzeit "on the fly" temporär anlegen, damit du ihn ändern kannst.