ヘッダーをスキップ
Oracle® Objects for OLE開発者ガイド
11gリリース2 (11.2) for Microsoft Windows
B58887-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

AddNewメソッド

説明

コピー・バッファを消去し、指定したダイナセットおよび関連データベースへのレコード挿入操作を開始します。

使用方法

oradynaset.AddNew
oradynaset.DbAddNew 

備考

AddNew操作が開始されるとき、ダイナセット内のフィールドの値はコピー・バッファ内に保持され、データベースの実際の内容には反映されません。

フィールドの値は、OraFieldオブジェクトを介して変更され、Update操作時またはデータベース内で移動が発生した際にコミットされて、新しい行が破棄されます。明示的に割り当てられていないフィールド値は、OpenDatabaseメソッドがコールされたときに使用されたオプション・フラグの列デフォルト・モードに応じて、Nullに設定されるか、またはOracleのデフォルト・メカニズムによってデフォルト値に設定できます。いずれの場合も、データベース表には存在し、ダイナセットには存在しないフィールドは、Oracleのデフォルト・メカニズムによって常にデフォルト値に設定されます。

レコードは、内部的には"INSERT into TABLE (...) VALUES (...)" SQL文を使用してAddNewメソッドによって挿入され、表の最後に追加されます。

オブジェクト型、コレクション型およびREF型の列を含んだ行を追加する場合は、これらの型の列値として有効なOraObjectOraCollectionまたはOraRefインタフェース、あるいはNULL値を設定してください。この列値は、CreateOraObjectメソッドによって戻されるオートメーション・オブジェクトを使用して設定することもできます。BLOBCLOBまたはBFILEの列を含んだ行を追加する場合は、これらの型の列値として有効なOraBLOBOraCLOBまたはOraBFILEインタフェース、NULL、あるいはEmptyを設定してください。BLOBCLOBおよびBFILE型の列にEmpty値を設定すると、データベースに空のLOB値が挿入されます。


注意:

EditAddNewまたはDeleteメソッドのコールでは、未処理のEditまたはAddNewメソッドのコールは処理前に取り消されます。Updateメソッドを使用して保存されていない未処理の変更は、すべて取消処理中に失われます。

この例では、AddNewおよびUpdateメソッドを使用して、ダイナセットに新規レコードを追加する方法を示します。このコードをフォームの定義セクションにコピーしてください。次に[F5]を押します。

Sub Form_Load ()
 
 'Declare variables 
 Dim OraSession As OraSession
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", _ 
               "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
 'Begin an AddNew.
 OraDynaset.AddNew
 
 'Set the field(column) values.
 OraDynaset.Fields("EMPNO").Value = "1000"
 OraDynaset.Fields("ENAME").Value = "WILSON"
 OraDynaset.Fields("JOB").Value = "SALESMAN"
 
 OraDynaset.Fields("MGR").Value = "7698"
 OraDynaset.Fields("HIREDATE").Value = "19-SEP-92"
 OraDynaset.Fields("SAL").Value = 2000
 OraDynaset.Fields("COMM").Value = 500
 OraDynaset.Fields("DEPTNO").Value = 30
 
 'End the AddNew and Update the dynaset.
 OraDynaset.Update
 
 MsgBox "Added one new employee."
 
End Sub