0

私はVB.netが初めてです。Oracle データベースに接続する既存のアプリケーションを変更する必要があります。

私の質問は次のとおりです。vb からオラクル シーケンスによって生成された値を挿入するにはどうすればよいですか? これまでのところ、次のコードがあります。

Dim mpData As New MaximoDataSetTableAdapters.MEASUREPOINTTableAdapter
Dim mpTable As New MaximoDataSet.MEASUREPOINTDataTable
mpData.Fill(mpTable)

Dim mData As New MaximoDataSetTableAdapters.MEASUREMENTTableAdapter
Dim mTable As New MaximoDataSet.MEASUREMENTDataTable

Dim mpRow As MaximoDataSet.MEASUREPOINTRow
For Each mpRow In mpTable

  Dim mRow As MaximoDataSet.MEASUREMENTRow
  mRow = mTable.NewRow()
  mRow.POINTNUM = mpRow.POINTNUM
  mRow.MEASUREDATE = CStr(Now)
  mRow.MEASUREMENTVALUE = tTotal
  mTable.Rows.Add(mRow)
  mData.Update(mTable)

next

しかし、シーケンスによって生成された別のフィールド ROWSTAMP があるため、エラーが発生しますか?

ご意見をお聞かせください。

よろしく、ラドゥ。

4

2 に答える 2

0

Oracle 列では、「シーケンスによって生成」されません。自分でシーケンスから次の値をフェッチし、行を挿入するときにこの値を提供する必要があります。

SELECT mysequence.nextval
  INTO some_variable
デュアルから;

次に、insert ステートメントで some_variable の値を使用します。

于 2010-12-03T10:12:46.747 に答える
0

「挿入前」トリガーを作成できます。これにより、rowstamp 列にシーケンスの次の値が入力されます。私自身はこの戦略は好きではありませんが、1つのオプションです。

ここにこれを行う方法の例があります

于 2010-12-05T23:00:53.973 に答える