プロシージャーでデータベースを更新する方法には、次の 2 とおりがあります。
- New コマンドを使って直接挿入する方法 (このコードは、プロシージャーのソースにのみ追加できます):
New
CustomerId = &CustomeriId
CustomerName = &CustomerName
Endnew
- ビジネスコンポーネントの概念を使って挿入する方法 (このコードは、プロシージャーのソースのほか、 [ Events ] エレメント内のほかの GeneXus オブジェクトにも追加できます):
&Customer.CustomerId = &CustomerId
&Customer.CustomerName = &CustomerName
&Customer.Save()
Commit
この 2 つの方法は、どちらが優れているでしょうか。
その答えは、場合によって異なります。パフォーマンスの観点では、直接挿入するほうが適しています。これは、コントロールが含まれておらず、生成された SQL 文が一括更新で最適化されるためです。一方、一貫性の観点では、ビジネスコンポーネントを使用する方が適しています。これは、元データがフォームであるかプロシージャーであるかに関わらず、すべてのコントロールが独立して実行されるためです。
したがって、経験則からすると、パフォーマンスを特に重視する場合を除き、ビジネスコンポーネントを使用する方がお奨めです。
|