Zurückschreiben der DB auf die HD

08/07/2008 - 14:07 von Susann Markward | Report spam
Hallo,

zwei Fragen zu MS Access-DBs:

1) Gibt es evtl. noch eine andere Syntax / Schreibweise für den Befehl

rcsDest.Open "Select * from DeviceData where (Hash = """ & ThisHash &
""") and (ID = " & ThisID & ")", ...

Mich stören an diesem Befehl die ganzen doppelten und dreifachen
Gànsefüßchen. Ich finde das so unübersichtlich zu lesen.

2) Ich schreibe alle paar 100 ms Mess-Werte in o.g. DB. Die DB wird mit

Dim conDest As ADODB.Connection
Dim rcsDest As ADODB.Recordset
Set rcsDest = New ADODB.Recordset
Set rcsDest = New ADODB.Recordset
File = App.Path & "db\messdaten.mdb"
Set conDest = New ADODB.Connection
conDest.Open ...
rcsDest.Open ...

geöffnet, bearbeitet und mit

rcsDest.Update
rcsDest.Close
conDest.Close
Set rcsDest = Nothing
Set conDest = Nothing

wieder geschlossen.

Unterbreche ich die Stromversorgung des PCs stehen in der DB am Anfang
(t < 10 s) noch keine Werte drin. Ich vermute, dass die Werte zwar in
die DB geschrieben worden sind, aber sich alles noch im Arbeitsspeicher
abspielt. Durch die Unterbrechung der Stromversorgung geht der Inhalt
des Arbeitsspeichers verloren und somit auch die Daten.

Wie bringe ich Windows dazu die Daten auf die HD zu speichern? Habe ich
dazu überhaupt eine Chance? Oder liegt meine Vermutung ganz falsch?

MfG
Susann
 

Lesen sie die antworten

#1 Ralf Brostedt
08/07/2008 - 14:48 | Warnen spam
Susann Markward wrote On 08.07.2008 14:07:

Mich stören an diesem Befehl die ganzen doppelten und dreifachen
Gànsefüßchen. Ich finde das so unübersichtlich zu lesen.



Du kannst die doppelten Anführungszeichen des SQLs auch durch einfache
ersetzen:

rcsDest.Open "Select * from DeviceData where (Hash = '" & ThisHash & "')
and (ID = " & ThisID & ")", ...

Eine andere Möglichkeit sehe ich nicht, außer mit Parametern zu arbeiten
oder den SQL-String vorher in einer Variablen zusammenzubauen, um etwas
Übersichtlichkeit zu gewinnen.

Wie bringe ich Windows dazu die Daten auf die HD zu speichern? Habe ich
dazu überhaupt eine Chance? Oder liegt meine Vermutung ganz falsch?

rcsDest.Update


rcsDest.UpdateBatch
rcsDest.Close
...



UpdateBatch sollte (zumindest laut Online-Hilfe von Microsoft) genau das
tun.

Sender's Mail address is valid but not to be read.
In order to write an email, please replace the domain with
the sender's last name plus .de

Ähnliche fragen