<body>
Hallo,
<br>folgendes Szenario: eine Tabelle, drei Spalten. Spalte 3 errechnet
sich aus Spalte 1 und 2.
<br>Die Berechnung erfolgt in einer Prozedur. Somit kann ich es nicht mittels
einfachem UPDATE machen.
<br>Also hab ich mir mal Cursor angeschaut. Es gibt da die Option FOR UPDATE
OF <column name>.
<br>Mit dem folgenden Script sollte es funktionieren, nur: wo und vor allem
wie ändere ich den Wert der Spalte c fuer jeden Datensatz!
<blockquote>
<pre><tt>DECLARE @fa FLOAT
DECLARE @fb FLOAT
DECLARE @fc FLOAT
</tt></pre>
<tt>DECLARE curTest CURSOR FOR</tt>
<br><tt> SELECT a,b,c</tt>
<br><tt> FROM tab_Test</tt>
<br><tt> FOR UPDATE OF c</tt>
<p><tt>OPEN curTest</tt>
<p><tt>FETCH NEXT FROM curTest INTO @fa, @fb, @fc</tt>
<p><tt>WHILE (@@FETCH_STATUS <> -1)</tt>
<br><tt>BEGIN</tt>
<br><tt> /* hier soll bei dem Datensatz, auf den der Cursor zeigt,
der Wert von c geändert werden !! */</tt>
<p><tt> FETCH NEXT FROM curTest INTO @fa, @fb, @fc</tt>
<br><tt>END</tt></blockquote>
Mit einem UPDATE tab_Test SET c= @fc gehts, nur dann fehlt mir das Verstaendnis
fuer FOR UPDATE beim CURSOR.
<p>Ich hoffe, jemand kann mir helfen.
<p>Gruß Thomas
</body>
Hallo,
<br>folgendes Szenario: eine Tabelle, drei Spalten. Spalte 3 errechnet
sich aus Spalte 1 und 2.
<br>Die Berechnung erfolgt in einer Prozedur. Somit kann ich es nicht mittels
einfachem UPDATE machen.
<br>Also hab ich mir mal Cursor angeschaut. Es gibt da die Option FOR UPDATE
OF <column name>.
<br>Mit dem folgenden Script sollte es funktionieren, nur: wo und vor allem
wie ändere ich den Wert der Spalte c fuer jeden Datensatz!
<blockquote>
<pre><tt>DECLARE @fa FLOAT
DECLARE @fb FLOAT
DECLARE @fc FLOAT
</tt></pre>
<tt>DECLARE curTest CURSOR FOR</tt>
<br><tt> SELECT a,b,c</tt>
<br><tt> FROM tab_Test</tt>
<br><tt> FOR UPDATE OF c</tt>
<p><tt>OPEN curTest</tt>
<p><tt>FETCH NEXT FROM curTest INTO @fa, @fb, @fc</tt>
<p><tt>WHILE (@@FETCH_STATUS <> -1)</tt>
<br><tt>BEGIN</tt>
<br><tt> /* hier soll bei dem Datensatz, auf den der Cursor zeigt,
der Wert von c geändert werden !! */</tt>
<p><tt> FETCH NEXT FROM curTest INTO @fa, @fb, @fc</tt>
<br><tt>END</tt></blockquote>
Mit einem UPDATE tab_Test SET c= @fc gehts, nur dann fehlt mir das Verstaendnis
fuer FOR UPDATE beim CURSOR.
<p>Ich hoffe, jemand kann mir helfen.
<p>Gruß Thomas
</body>
Comment