INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

was ist das gegenteil von fetch?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.01.2009, 11:48 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2009 11:58 von gottfried.)
Beitrag #1

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
was ist das gegenteil von fetch?
Hallo,

ich möchte in allen Zeilen (Records) einer Datenbanktabelle einen String verändern. Bis zum String bin ich auch schon gekommen (fetch) aber wie schreibe ich das geänderte Zeug wieder in die DB? In SQL gibt es klarerweise (?) kein next (record). Irgendwie stehe ich an. Die ganze Spalte einlesen? Das sind aber 164000 Werte..., OK aber wie schreiben?

LV 8.5

Danke

Gottfried

PS.: in der Tabelle habe ich keine Werte mit denen ich den "nächsten" Record bestimmen könnte


Angehängte Datei(en)
Sonstige .vi  DB_zeitkorrektur.vi (Größe: 30,9 KB / Downloads: 175)

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2009, 12:48
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
was ist das gegenteil von fetch?
' schrieb:Hallo,

ich möchte in allen Zeilen (Records) einer Datenbanktabelle einen String verändern. Bis zum String bin ich auch schon gekommen (fetch) aber wie schreibe ich das geänderte Zeug wieder in die DB? In SQL gibt es klarerweise (?) kein next (record). Irgendwie stehe ich an. Die ganze Spalte einlesen? Das sind aber 164000 Werte..., OK aber wie schreiben?

LV 8.5

Danke

Gottfried

PS.: in der Tabelle habe ich keine Werte mit denen ich den "nächsten" Record bestimmen könnte


ich würd das gar nicht über cursors, sondern über einen Query machen:

Code:
UPDATE tabellenname SET spaltenname=neuerwert WHERE (irgend eine Bedingung, oder auch keine ...)

Wie das mit SQL funktioniert sieht kannst du dir hier anschauen

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2009, 13:35
Beitrag #3

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
was ist das gegenteil von fetch?
Danke

Aber das Problem ist dass ich in SQL nicht zum nächsten Record gehen kann. Ich könnte eine laufende Recordnummer einführen... na ja. Und der neue Wert entsteht aus dem alten wert der in der Spalte steht (falsche Datumsformatiuerung)

Danke

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2009, 15:04
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
was ist das gegenteil von fetch?
' schrieb:Und der neue Wert entsteht aus dem alten wert der in der Spalte steht (falsche Datumsformatiuerung)

auch das geht mit SQL ...z.B. SET spaltenname=spaltenname+1 wenn die Spalte die geändert werden soll ein numerisches Format hat. Wie's bei Datums-Feldern aussieht müsst ich nun auch nachschauen ...

aber um nochmal auf die Frage einzugehen: ein Gegenteil von Fetch gibt es sogesehen nicht weil ein Recordset keinen direkten Zugriff auf die zugrundeliegenden Tabellen hat. Wenn du die Daten in der DB ändern willst, dann geht das mit einem UPDATE-Statement.

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2009, 10:54
Beitrag #5

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
was ist das gegenteil von fetch?
Verstehe ich das richtig: mit dem fetch bekomme ich eine Liste. Dises Liste merken, das Recordset schliessen und dann anhand der Liste die Records in Spalte x verändern?

Habe ich das so richtig?

Ich dachte (wie in Access, wo ich in einer Abfrage auch die darunter liegenden Daten ändern kann) ich könnte das auch mit einem Fetch machen.

Vielen Dank

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2009, 11:30
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
was ist das gegenteil von fetch?
' schrieb:Verstehe ich das richtig: mit dem fetch bekomme ich eine Liste. Dises Liste merken, das Recordset schliessen und dann anhand der Liste die Records in Spalte x verändern?

Habe ich das so richtig?

Ich dachte (wie in Access, wo ich in einer Abfrage auch die darunter liegenden Daten ändern kann) ich könnte das auch mit einem Fetch machen.

Vielen Dank

Gottfried

ja, in Access geht das weil es im Hintergrund ein SQL-Statement generiert und ausführt, mit ADO geht das nicht bzw. du musst das Statement halt selbst entwickeln. Für deine Aufgabenstellung gibt es 2 Möglichkeiten:

a) du kannst alle Timestamps mit EINEM Update-Query "erschlagen", das wäre dann die einfache Methode,
oder
b) du musst für jede Zeile den Timestamp separat aktualisieren, dann holst du dir alle betroffenen Zeilen in einem Recordset nach LabVIEW, wandelst die Daten in einer For-Schleife (Anzahl der Zeilen im Recordset ...) in einen LV Zeitstempel um, manipulierst deinen Wert und schickst ein Update-Statement ab. Dabei ist es sehr hilfreich, wenn du jede Zeile mit einer ID (Typ i32, in Access ist das der Auto-Wert) als Primärschlüssel ausstattest und dann dein Update-Statement mit der Where-Clause "WHERE meinIDSpaltenName = ID ausführtst. Damit die ADO API nicht "überfordert" wird solltest du die While-Schleife mit einem Timer bremsen ... nach meinen Beobachtungen verkraftet ADO ca. 100 UPDATEs per Sekunde ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  insert data auf fetch recordset data ColdducK 9 7.783 23.12.2011 11:04
Letzter Beitrag: ColdducK

Gehe zu: