(.net data provider編...

84
J2X1-7486-02Z0(00) 20102Windows/Solaris/Linux Symfoware Server V10.0.0 アプリケーション開発ガイド (.NET Data Provider)

Upload: vonhu

Post on 25-Mar-2018

307 views

Category:

Documents


41 download

TRANSCRIPT

Page 1: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

J2X1-7486-02Z0(00)2010年2月

Windows/Solaris/Linux

Symfoware Server V10.0.0

アプリケーション開発ガイド(.NET Data Provider編)

Page 2: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

まえがき

本書の目的

本書は、Symfoware .NET Data Providerを利用して、Symfoware Serverのデータベースにアクセスする方法について説明しています。

本書の読者

本書は、Symfoware .NET Data Providerを使用して、アプリケーションを開発する方を対象にしています。

本書を読むには、以下に示す技術および知識が必要です。

・ Symfoware/RDBに関する知識

・ SQLに関する知識

・ オブジェクト指向のプログラミングに関する一般知識

・ .NET Framework、およびADO.NETに関する一般知識

本書の構成

第1章 アプリケーション開発の概要

Symfoware .NET Data Providerを利用したアプリケーション開発の概要について説明しています。

第2章 アプリケーションの設計

Symfoware .NET Data Providerを利用したアプリケーションの設計時に考慮すべき点について説明しています。

第3章 アプリケーションの作成

Symfoware .NET Data Providerを利用したアプリケーションの作成方法について説明しています。

第4章 アプリケーションのデバッグとチューニング

Symfoware .NET Data Providerを利用したアプリケーションのデバッグおよびチューニング方法を説明しています。

第5章 APIリファレンス

Symfoware .NET Data Providerで提供するAPIについて説明しています。

付録A サンプルプログラム

Symfoware .NET Data Providerを利用したサンプルプログラムを記載します。

付録B ConnectionStringプロパティのキーワード

SymfowareConnection.ConnectionStringプロパティに指定可能なキーワードについて説明しています。

付録C 使用可能SQL文一覧

Symfoware .NET Data Providerを利用したアプリケーションで指定可能なSQL文について説明しています。

本書の読み方

本書は、.NET Framework、およびADO.NETに関する知識のある方を対象としているため、一般的な知識については省略していま

す。また、ADO.NETに準拠した機能については、一部、説明を省略しているところがあります。

本書をご覧になる際は、Microsoft社のMSDNライブラリと合わせてお読みください。

関連マニュアル

本書に関連するマニュアルは以下のとおりです。

・ Microsoft社のMSDNライブラリ

・ Microsoft社のVisual Studioのマニュアル

・ NetCOBOL使用手引書

- i -

Page 3: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

平成22年 1月 初版

平成22年 2月 第2版

- ii -

Page 4: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

目 次

第1章 アプリケーション開発の概要.............................................................................................................................................11.1 Symfoware .NET Data Providerの概要..............................................................................................................................................11.2 Symfoware .NET Data Providerの利用形態......................................................................................................................................11.3 Symfoware .NET Data Providerの機能..............................................................................................................................................31.4 動作環境.............................................................................................................................................................................................31.5 アプリケーション開発作業の流れ.......................................................................................................................................................3

第2章 アプリケーションの設計....................................................................................................................................................62.1 コネクション..........................................................................................................................................................................................62.2 文字コード系の決定............................................................................................................................................................................62.3 トランザクションの制御........................................................................................................................................................................72.4 データ型の対応関係...........................................................................................................................................................................7

第3章 アプリケーションの作成..................................................................................................................................................113.1 アプリケーションの作成方法.............................................................................................................................................................11

3.1.1 コーディング方法の種類............................................................................................................................................................113.1.2 Symfoware .NET Data Providerのセットアップ..........................................................................................................................11

3.2 データ操作の自動生成.....................................................................................................................................................................123.2.1 コードの自動生成範囲...............................................................................................................................................................133.2.2 ODBCデータソースの登録とデータ接続の作成......................................................................................................................133.2.3 ODBCブリッジコードの生成.......................................................................................................................................................153.2.4 Symfoware .NET Data Providerのコードの生成.......................................................................................................................17

3.3 アプリケーションロジックの作成........................................................................................................................................................183.3.1 自動生成したコードの呼出しとコネクションの作成...................................................................................................................19

第4章 アプリケーションのデバッグとチューニング......................................................................................................................214.1 アプリケーションのデバッグ...............................................................................................................................................................21

4.1.1 EventLogによる対処...................................................................................................................................................................214.2 アプリケーションのチューニング.......................................................................................................................................................23

第5章 APIリファレンス..............................................................................................................................................................255.1 Symfoware .NET Data Providerのクラス...........................................................................................................................................255.2 サポートAPI一覧...............................................................................................................................................................................265.3 拡張API.............................................................................................................................................................................................35

5.3.1 SymfowareConnectionクラス......................................................................................................................................................355.3.2 SymfowareConnectionStringBuilderクラス................................................................................................................................425.3.3 SymfowareTransactionクラス......................................................................................................................................................42

5.4 留意事項...........................................................................................................................................................................................43

付録A サンプルプログラム.......................................................................................................................................................47A.1 サンプル実行前の準備....................................................................................................................................................................47A.2 C♯のサンプル.................................................................................................................................................................................48

A.2.1 接続および切断........................................................................................................................................................................48A.2.2 SymfowareDataReaderでの参照...............................................................................................................................................48A.2.3 DataSetでの参照.......................................................................................................................................................................49A.2.4 探索条件付きSQL文での更新.................................................................................................................................................50A.2.5 CommandBuilderを利用した更新.............................................................................................................................................51A.2.6 ストアドプロシジャの実行..........................................................................................................................................................53A.2.7 トランザクション制御..................................................................................................................................................................54A.2.8 エラー処理.................................................................................................................................................................................55A.2.9 イベントハンドラによるメッセージの取得...................................................................................................................................56

A.3 Visual Basic .NETのサンプル..........................................................................................................................................................57A.3.1 接続および切断........................................................................................................................................................................57A.3.2 SymfowareDataReaderでの参照...............................................................................................................................................58A.3.3 DataSetでの参照.......................................................................................................................................................................59A.3.4 探索条件付きSQL文での更新.................................................................................................................................................60

- iii -

Page 5: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

A.3.5 CommandBuilderを利用した更新.............................................................................................................................................60A.3.6 ストアドプロシジャの実行..........................................................................................................................................................62A.3.7 トランザクション制御..................................................................................................................................................................63A.3.8 エラー処理.................................................................................................................................................................................64A.3.9 イベントハンドラによるメッセージの取得...................................................................................................................................65

付録B ConnectionStringプロパティのキーワード......................................................................................................................67B.1 eventlogキーワード...........................................................................................................................................................................68B.2 tuneparamキーワード........................................................................................................................................................................70

付録C 使用可能SQL文一覧....................................................................................................................................................75

索引........................................................................................................................................................................................78

- iv -

Page 6: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

第1章 アプリケーション開発の概要

本章では、Symfoware .NET Data Providerを利用したアプリケーション開発の概要について説明します。

1.1 Symfoware .NET Data Providerの概要

Symfoware .NET Data Providerは、Microsoftが提唱するADO.NETに準拠したデータベースアクセスコンポーネントです。SymfowareServer独自の.NET Data Providerの提供により、.NET Framework環境からSymfoware Serverへの 適なデータアクセスを保証します。

Symfoware .NET Data Provider、Symfoware Server、および.NET Frameworkの関係を以下に示します。

1.2 Symfoware .NET Data Providerの利用形態

Symfoware .NET Data Providerの利用形態には、システム規模に応じて以下のようなモデルがあります。

・ 4階層モデル

・ 3階層モデル

・ 2階層モデル

モデルごとの各階層の役割と、Symfoware .NET Data Providerが動作するサーバについて説明します。

4階層モデル

大/中規模システムを構築するユーザ向けの4階層モデルについて説明します。

図1.1 4階層モデル

- 1 -

Page 7: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

4階層モデルでは、各層における役割分担が明確になります。クライアントは、通常、Webブラウザです。Webサーバは、クライアントか

らの要求をアプリケーションサーバに引渡し、その結果のビューをクライアントに提供します。アプリケーションサーバは、Webサーバか

らの要求に応じてデータベースサーバにあるリソースとのやり取りなどの固有のビジネスロジックを実行し、その結果をWebサーバに戻

します。データベースサーバには、ユーザの資産であるデータベースが存在します。このモデルでは、Symfoware .NET Data Providerはアプリケーションサーバに存在します。

4階層モデルでは、各層で個別の機能に特化した開発が行いやすく、開発効率および保守性が高くなり再利用性の高い部品開発も

容易になります。

3階層モデル

小/中規模システムを構築するユーザ向けの3階層モデルについて説明します。

図1.2 3階層モデル

3階層モデルは、4階層モデルからアプリケーションサーバを除いた構成になります。このため中間層であるWebサーバでビジネスロ

ジックを実装する必要があり、データベースへのアクセスなど、比較的単純な要求を処理するシステムに適用されることが多くなります。

クライアントは、通常、Webブラウザです。このモデルでは、Symfoware .NET Data ProviderはWebサーバに存在します。

2階層モデル

小規模システムを構築するユーザ向けの2階層モデルについて説明します。

図1.3 2階層モデル

- 2 -

Page 8: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

2階層モデルでは、3階層モデルおよび4階層モデルにおけるWebサーバとアプリケーションサーバの機能をクライアントで提供する必

要があります。このため、2階層モデルは、単一の機能のみを処理するようなごく小規模なシステムで使用されます。このモデルでは、

Symfoware .NET Data Providerはクライアントに存在します。

1.3 Symfoware .NET Data Providerの機能

Symfoware .NET Data Providerには、ADO.NETに準拠した標準機能と、Symfoware Server専用の拡張機能があります。

ここでは、Symfoware .NET Data Providerの拡張機能の概要を説明します。

ログの取得

Symfoware .NET Data Providerでは、アプリケーションの異常時に、原因を分析するためのログを取得するEventLog機能を提供しま

す。EventLogでは、アプリケーション実行時に使用されたSymfoware .NET Data Provider APIごとのレスポンス性能や、入出力データ

の情報を取得できます。レスポンス性能の情報から、API単位で性能コストを算出し、アプリケーションとSymfoware Serverとの所要時

間を分析することができます。また、出力されたログを分析、デバッグすることで、エラー原因を確認することができます。

アプリケーションのチューニング

Symfoware .NET Data Providerでは、アプリケーションの実行時の動作環境をチューニングするためのチューニングパラメタを提供し

ます。チューニングパラメタにより、コネクションの状態を制御することができます。また、Symfoware Serverのクライアント用の動作環境

ファイルの実行パラメタを指定することができます。これにより、Symfoware Server固有の動作環境をチューニングすることができます。

1.4 動作環境

アプリケーションの開発、および運用には、以下の環境が必要です。

・ .NET Framework 2.0、.NET Framework 3.0または.NET Framework 3.5

.NET Frameworkアプリケーションの開発、および動作に必要な環境です。

・ Visual Studio 2005またはVisual Studio 2008

.NET Framework環境で動作するアプリケーションの統合開発環境です。

利用可能な開発言語

Symfoware .NET Data Providerで利用可能な開発言語を以下に示します。

・ C#

・ Visual Basic .NET

・ COBOL(注)

注)COBOLを利用する場合、Visual Studio 2005またはVisual Studio 2008に加えて、NetCOBOL for .NETが必要です。

1.5 アプリケーション開発作業の流れ

Symfoware .NET Data Providerを利用したアプリケーション開発作業の流れを以下に示します。

- 3 -

Page 9: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

アプリケーションの設計

Symfoware Serverにアクセスするアプリケーションを設計します。アプリケーションの設計時に、開発言語や利用するSQL文などを決定

します。Symfoware .NET Data Providerを利用した.NET Frameworkアプリケーションでは、設計時に以下のことを考慮してください。

・ コネクション情報の指定方法

・ アプリケーションとデータベースの文字コード系

・ トランザクション

・ Symfoware Serverと.NET Frameworkのデータ型の対応関係

詳細は、“第2章 アプリケーションの設計”を参照してください。

アプリケーションの作成

アプリケーションの作成には、Visual Studioを使用します。

Symfoware .NET Data Providerを利用したアプリケーションの作成は、以下の2通りの方法があります。

・ .NET Frameworkの規格に則ったデータ操作を自動生成する方法

(データオブジェクトを利用)

・ 開発者が自由にコーディングする方法

データ操作を自動生成する方法、および自動生成可能な範囲を確認し、作成方法を選択してください。詳細は、“第3章 アプリケー

ションの作成”を参照してください。

- 4 -

Page 10: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

また、Symfoware .NET Data ProviderのAPIの詳細は、“第5章 APIリファレンス”を参照してください。

アプリケーションのデバッグ/チューニング

アプリケーションをコンパイルしたあと、実際に実行してデバッグをしたり、性能をチューニングしたりして、アプリケーションの問題を取

り除きます。

詳細は、“第4章 アプリケーションのデバッグとチューニング”を参照してください。

- 5 -

Page 11: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

第2章 アプリケーションの設計

本章では、Symfoware .NET Data Providerを利用したアプリケーションの設計時に考慮すべき点について説明します。

2.1 コネクション

Symfoware .NET Data Providerでは、SymfowareConnectionクラスを使用して、アプリケーションとデータベースのコネクションを確立し

ます。

コネクションには、接続するデータベースへの接続先情報を指定します。接続先情報の指定方法には、以下の2種類があります。

・ アプリケーションの構成ファイルに指定する

Visual Studioのアプリケーションの構成ファイル(Windowsアプリケーションではapp.config、Webアプリケーションではweb.config)に接続先情報を指定します。構成ファイルに指定した接続先情報は、アプリケーション実行時に読み込まれます。情報を変更して

もアプリケーションの再コンパイルは不要です。

・ ConnectionStringプロパティに指定する

ConnectionStringプロパティに接続先情報(キーワード)を指定します。ConnectionStringプロパティに指定した情報は、アプリケー

ションのコンパイル時にプログラムに組み込まれます。情報を変更するには、アプリケーションの再コンパイルが必要です。

接続先情報をアプリケーションの構成ファイルに指定すると、アプリケーションを再コンパイルせずに、接続先情報を変更することがで

きるため、テスト環境から運用環境へのデータベースの切替えなどが容易になります。Symfoware .NET Data Providerでは、接続先情

報をアプリケーションの構成ファイルに指定することを推奨します。

ポイント

EventLogの取得やチューニングパラメタの指定も、構成ファイル、またはConnectionStringプロパティに指定します。

参照

接続先情報の指定方法の詳細は、“付録B ConnectionStringプロパティのキーワード”、およびMicrosoft社のMSDNライブラリを参照し

てください。

2.2 文字コード系の決定

Symfoware .NET Data Providerを利用したアプリケーションの文字コード系の決定に必要な情報を説明します。

・ Symfoware Serverで使用可能な文字コード系

・ .NET Frameworkアプリケーションの文字コード系

・ データベースの文字コード系との関係

・ .NET Framework環境で 適な文字コード系

Symfoware Serverで使用可能な文字コード系

Symfoware Serverで使用可能な文字コード系は、以下のとおりです。

・ EUCコード

・ シフトJISコード

・ UNICODE

Symfoware .NET Data Providerでも、上記の文字コード系を使用することができます。

- 6 -

Page 12: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

.NET Frameworkアプリケーションの文字コード系

.NET Frameworkは、文字データを内部的にUNICODEで扱います。.NET Frameworkアプリケーションに対して、EUCコードやシフトJISコードで入出力を行うと、.NET Frameworkにより文字データはUNICODEに変換されます。このため、.NET Frameworkアプリケーショ

ンでは、アプリケーション作成時に文字コード系の指定を意識する必要はありません。

データベースの文字コード系との関係

.NET Frameworkアプリケーションは、文字データをUNICODEでSymfoware Serverへ渡します。データベースの文字コード系が、EUCコード、またはシフトJISコードの場合、アプリケーションとデータベースの間で文字コード変換が発生します。

Symfoware Serverでは、アプリケーションとデータベースの文字コード系が異なる場合、サーバで自動的に文字コード変換を行いま

す。このため、アプリケーションの作成時に、データベースの文字コード系の指定を意識する必要はありません。

.NET Framework環境で最適な文字コード系

.NET Frameworkアプリケーションを作成する場合、アプリケーションとSymfoware Serverの双方で自動的に文字コード変換を行うた

め、特別な意識は必要ありません。

ただし、文字コード系は、コードごとに扱う文字種の数が異なるため、アプリケーションの文字コード系とデータベースの文字コード系

が異なると、文字の欠損が生じる場合があります。

.NET Frameworkを利用したシステムでは、UNICODEで文字データを流通させると、文字コード変換が発生しないため、文字コード変

換による負荷や、文字の欠損などの問題を防ぐことができます。

2.3 トランザクションの制御

.NET Frameworkでは、非接続型データアクセスを実現しているため、通常、トランザクションを意識する必要はありません。

トランザクションを制御する場合は、Symfoware Serverのトランザクションアクセスモード機能と独立性水準機能を利用することができま

す。なお、Symfoware .NET Data Providerの独立性水準の既定値は、“ReadUncommitted”です。

また、Symfoware .NET Data Providerのコミット制御は、自動コミットです。コミット契機を制御したい場合は、明示的にメソッドを呼び出

してください。

参照

トランザクション制御の詳細は、“第5章 APIリファレンス”、およびMicrosoft社のMSDNライブラリを参照してください。

2.4 データ型の対応関係

アプリケーションからSymfoware Serverへデータの代入/取出しを行うには、Symfoware ServerのSQLのデータ型に合うデータ型でアプ

リケーションを作成する必要があります。

Symfoware ServerのSQLのデータ型に対応する.NET CLS(共通言語仕様)のデータ型を、“表2.1 Symfoware ServerのSQLのデータ

型に対応する.NET CLSのデータ型”に示します。表中で、使用可能となっているデータ型は、双方の型の合う範囲で使用することが

できます。

また、Symfoware Serverからデータを取得するときに、使用可能なSymfoware .NET Data Providerのメソッドの対応関係を、“表2.2 デー

タ取得可能なSymfoware .NET Data Providerのメソッド”に示します。

参照

Symfoware ServerのSQLのデータ型の詳細は、“SQLリファレンス”を参照してください。また、.NET CLSのデータ型の詳細は、Microsoft社のMSDNライブラリを参照してください。

- 7 -

Page 13: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

表2.1 Symfoware ServerのSQLのデータ型に対応する.NET CLSのデータ型

Symfoware ServerのSQLのデータ型

(表の列のデータ型)

.NET CLSのデータ型

Boolean

Byte Byte[ ]

Char[ ]

DateTime

Decimal

Double

Int16 Int32 Int64 Single

String

TimeSpan

文字列

CHAR ○ ○ - ○ ○ ○ ○ ○ ○ ○ ○ ◎ ○

VARCHAR ○ ○ - ○ ○ ○ ○ ○ ○ ○ ○ ◎ ○

各国語

文字列

NCHAR - - - ○ - - - - - - - ◎ -

NCHAR VARYING - - - ○ - - - - - - - ◎ -

真数型 SMALLINT ○ ○ - ○ - ○ ○ ◎ ○ ○ ○ ○ -

INTEGER ○ ○ - ○ - ○ ○ ○ ◎ ○ ○ ○ -

NUMERIC ○ ○ - ○ - ◎ ○ ○ ○ ○ ○ ○ -

DECIMAL ○ ○ - ○ - ◎ ○ ○ ○ ○ ○ ○ -

概数型 REAL ○ ○ - ○ - ○ ○ ○ ○ ○ ◎ ○ -

FLOAT(p)p=1~23 ○ ○ - ○ - ○ ○ ○ ○ ○ ◎ ○ -

FLOAT(p)p=24~52 ○ ○ - ○ - ○ ◎ ○ ○ ○ ○ ○ -

DOUBLEPRECISION

○ ○ - ○ - ○ ◎ ○ ○ ○ ○ ○ -

日時型 DATE - - - ○ ◎ - - - - - - ○ -

TIME - - - ○ - - - - - - - ○ ◎

TIMESTAMP - - - ○ ◎ - - - - - - ○ -

BLOB型

(注)

BLOB - - ◎ - - - - - - - - - -

INTERVAL_YEAR - - - ○ - - - - - - - ◎ -

INTERVAL_MONTH

- - - ○ - - - - - - - ◎ -

INTERVAL_YEAR_TO_MONTH

- - - ○ - - - - - - - ◎ -

INTERVAL_DAY - - - ○ - - - - - - - ◎ -

INTERVAL_DAY_TO_HOUR

- - - ○ - - - - - - - ◎ -

INTERVAL_DAY_TO_MINUTE

- - - ○ - - - - - - - ◎ -

INTERVAL_DAY_TO_SECOND

- - - ○ - - - - - - - ◎ -

INTERVAL_HOUR - - - ○ - - - - - - - ◎ -

INTERVAL_HOUR_TO_MINUTE

- - - ○ - - - - - - - ◎ -

INTERVAL_HOUR_TO_SECOND

- - - ○ - - - - - - - ◎ -

INTERVAL_MINUTE

- - - ○ - - - - - - - ◎ -

INTERVAL_MINUTE_TO_SECOND

- - - ○ - - - - - - - ◎ -

- 8 -

Page 14: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

Symfoware ServerのSQLのデータ型

(表の列のデータ型)

.NET CLSのデータ型

Boolean

Byte Byte[ ]

Char[ ]

DateTime

Decimal

Double

Int16 Int32 Int64 Single

String

TimeSpan

INTERVAL_SECOND

- - - ○ - - - - - - - ◎ -

◎:推奨

○:使用可能

-:使用不可

注)格納構造がOBJECT構造の表のBLOB型データにはアクセスできません。

表2.2 データ取得可能なSymfoware .NET Data Providerのメソッド

Symfoware ServerのSQLのデータ型

(表の列のデータ型)

Symfoware .NET Data Providerのメソッド

GetBoolean

GetByte

GetByte

s

GetChar

s

GetDate

GetDateTim

e

GetDecimal

GetDouble

GetFloat

GetInt16

GetInt32

GetInt64

GetStrin

g

GetTime

GetValu

e

GetValues

文字列型 CHAR ○ ○ - ○ - ○ ○ ○ ○ ○ ○ ○ ◎ ○ ○ ○

VARCHAR ○ ○ - ○ - ○ ○ ○ ○ ○ ○ ○ ◎ ○ ○ ○

各国語文

字列型

NCHAR - - - ○ - - - - - - - - ◎ - ○ ○

NCHARVARYING

- - - ○ - - - - - - - - ◎ - ○ ○

真数型 SMALLINT ○ ○ - ○ - - ○ ○ ○ ◎ ○ ○ ○ - ○ ○

INTEGER ○ ○ - ○ - - ○ ○ ○ ○ ◎ ○ ○ - ○ ○

NUMERIC ○ ○ - ○ - - ◎ ○ ○ ○ ○ ○ ○ - ○ ○

DECIMAL ○ ○ - ○ - - ◎ ○ ○ ○ ○ ○ ○ - ○ ○

概数型 REAL ○ ○ - ○ - - ○ ○ ◎ ○ ○ ○ ○ - ○ ○

FLOAT(p)p=1~23

○ ○ - ○ - - ○ ○ ◎ ○ ○ ○ ○ - ○ ○

FLOAT(p)p=24~52

○ ○ - ○ - - ○ ◎ ○ ○ ○ ○ ○ - ○ ○

DOUBLEPRECISION

○ ○ - ○ - - ○ ◎ ○ ○ ○ ○ ○ - ○ ○

日時型 DATE - - - ○ ○ ◎ - - - - - - ○ - ○ ○

TIME - - - ○ - - - - - - - - ○ ◎ ○ ○

TIMESTAMP

- - - ○ ○ ◎ - - - - - - ○ - ○ ○

BLOB型

(注)

BLOB - - ◎ - - - - - - - - - - - ○ ○

INTERVAL_YEAR

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_MONTH

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_YEAR_TO_MONTH

- - - ○ - - - - - - - - ◎ - ○ ○

- 9 -

Page 15: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

Symfoware ServerのSQLのデータ型

(表の列のデータ型)

Symfoware .NET Data Providerのメソッド

GetBoolean

GetByte

GetByte

s

GetChar

s

GetDate

GetDateTim

e

GetDecimal

GetDouble

GetFloat

GetInt16

GetInt32

GetInt64

GetStrin

g

GetTime

GetValu

e

GetValues

INTERVAL_DAY

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_DAY_TO_HOUR

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_DAY_TO_MINUTE

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_DAY_TO_SECOND

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_HOUR

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_HOUR_TO_MINUTE

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_HOUR_TO_SECOND

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_MINUTE

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_MINUTE_TO_SECOND

- - - ○ - - - - - - - - ◎ - ○ ○

INTERVAL_SECOND

- - - ○ - - - - - - - - ◎ - ○ ○

◎:推奨

○:使用可能

-:使用不可

注)格納構造がOBJECT構造の表のBLOB型データにはアクセスできません。

- 10 -

Page 16: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

第3章 アプリケーションの作成

本章では、Symfoware .NET Data Providerを利用したアプリケーションの作成方法を説明します。

なお、本説明ではVisual Studio 2005を使用しています。

3.1 アプリケーションの作成方法

アプリケーションの作成には、Visual Studioを使用します。使用可能なVisual Studioの詳細は、“1.4 動作環境”を参照してください。

ポイント

開発言語にCOBOLを利用する場合は、NetCOBOL for .NETをアドオンしてください。

3.1.1 コーディング方法の種類

アプリケーションの作成には、.NET Frameworkの規格に則ったデータ操作を自動生成する方法と、開発者が自由にコーディングする

方法があります。

データ操作を自動生成する場合、Visual Studioのデータオブジェクトを利用します。Visual Studioの機能を利用してコードを自動生成

するため、コーディングの生産性が向上します。

参照

・ データ操作を自動生成する場合の手順は、“3.2 データ操作の自動生成”を参照してください。

・ データ操作を自動生成せずに、自由にコーディングする場合は、“第5章 APIリファレンス”、Microsoft社のMSDNライブラリ、および

Microsoft社のVisual Studioのマニュアルを参照してください。

なお、コーディングの前に、Symfoware .NET Data Providerのセットアップが必要です。詳細は、“3.1.2 Symfoware .NET Data Providerのセットアップ”を参照してください。

3.1.2 Symfoware .NET Data Providerのセットアップ

アプリケーションを作成する前に、Visual StudioでSymfoware .NET Data Providerを使用可能な状態にします。

以下の手順で、Visual StudioのプロジェクトごとにFujitsu.Symfowareへの参照を追加してください。

1. Windowsアプリケーションの場合、[プロジェクト]メニューの[参照の追加]を選択します。

Webアプリケーションの場合は、[Web サイト]メニューの[参照の追加]を選択します。

- 11 -

Page 17: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

2. [.NET]タブの[コンポーネント名]から“Fujitsu.Symfoware”を選択し、[OK]ボタンをクリックします。

3.2 データ操作の自動生成

Symfoware .NET Data Providerのデータ操作は、Visual Studioで生成可能なデータ操作の標準的なコード(ODBCブリッジコード)を基

に、SNDPコード生成ツールで自動生成します。

自動生成可能なコードの範囲は、“3.2.1 コードの自動生成範囲”を参照してください。

な お 、 Symfoware .NET Data Provider の デ ー タ オ ブ ジ ェ ク ト ( SymfowareCommand 、 SymfowareCommandBuilder 、SymfowareConnection、およびSymfowareDataAdapter)を使用して、データ操作を自動生成することはできません。

注意

1つのフォームに、Symfoware .NET Data Providerのデータ操作を自動生成する目的以外のODBCブリッジコードを、混在させないで

ください。

コードの自動生成の流れと詳細手順の参照先を、以下に示します。

作業項目 説明 参照先

1 プロジェクトの作成 Visual Studioでアプリケーションのプロ

ジェクトを作成します。

Microsoft社の

Visual Studioのマニュアル

2 Symfoware .NET Data Providerのセッ

トアップ

Visual StudioでSymfoware .NET DataProviderを使用できるようにします。

3.1.2

3 ユーザインタフェースの作成 アプリケーションのユーザインタフェース

を作成します。

Microsoft社の

Visual Studioのマニュアル

4 ODBCデータソースの登録とデータ接

続の作成

データアダプタ構成ウィザード使用時

に、接続するデータベースの接続先を

設定します。

3.2.2

5 ODBCブリッジコードの生成 ODBCブリッジコードを自動生成します。 3.2.3

- 12 -

Page 18: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

作業項目 説明 参照先

6 Symfoware .NET Data Providerのコー

ドの生成

SNDPコード生成ツールを使用して、自

動生成したODBCブリッジコードから

Symfoware .NET Data Providerのコード

を生成します。

Symfoware .NET Data Providerのコード

生成後に、ユーザインタフェースまたは

データ操作を変更したい場合は、手順3.または手順5.まで戻り、やり直してくださ

い。変更後は、SNDPコード生成ツール

を必ず再実行してください。

3.2.4

7 アプリケーションロジックの作成 アプリケーションロジックを作成します。

コードを自動生成した場合、アプリケー

ションロジック作成時に、必ず行う作業

があります。

・ 3.3

・ APIリファレ

ンス

・ Microsoft 社の MSDN ラ

イブラリ

自動生成したコードの呼出し 自動生成したコードをアプリケーションロ

ジックで呼び出します。

3.3.1

コネクションの作成 データベースの接続情報を追加します。

3.2.1 コードの自動生成範囲

自動生成可能なSymfoware .NET Data Providerのコードは、以下のとおりです。

・ 自動生成可能なコードは、以下のオブジェクトの範囲です。

- OdbcCommand

- OdbcCommandBuilder

- OdbcConnection

- OdbcDataAdapter

・ 自動生成可能なコードは、ODBCブリッジコードで生成可能な範囲です。詳細は、Microsoft社のVisual Studioのマニュアルを参照

してください。

・ 時間隔型を含む表に対しては、データアダプタ構成ウィザードを使用してSQL文を生成することはできません。時間隔型を含む表

は、直接コーディングしてください。

3.2.2 ODBCデータソースの登録とデータ接続の作成

ODBCブリッジコードを生成するときに接続するSymfoware Serverを、あらかじめ、接続先として設定します。

ODBCデータソースの登録

ODBCデータソースを登録します。データソース登録時のODBCドライバには、“Symfoware ODOS”を指定してください。

参照

ODBCデータソースの登録手順の詳細は、“アプリケーション開発ガイド(ODBCドライバ編)”の“ODBCデータソースの登録”を参照し

てください。

- 13 -

Page 19: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

注意

ODBCデータソースの登録前に、データベースが構築されている必要があります。

データ接続の作成

Visual Studioから、データベースのデータ接続を作成します。

1. [ツール]メニューの[データベースへの接続]を選択し、[データソースの選択]ダイアログを表示します。

2. [データソース]の“その他”を選択し、[データプロバイダ]プルダウンメニューから“.NET Framework ODBC 用データ プロバイダ”

を選択します。

3. [続行]ボタンをクリックし、[接続の追加]ダイアログボックスを表示します。

4. [データソースの指定]、および[ログイン情報]に接続先情報を指定し、[OK]ボタンをクリックします。

- 14 -

Page 20: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

5. サーバーエクスプローラのデータ接続の配下に、作成したデータ接続のテーブル、ビュー、およびプロシージャが表示されるこ

とを確認します。

3.2.3 ODBCブリッジコードの生成

ODBCブリッジコードを生成します。ODBCブリッジコードの生成には、ODBCデータソース用のデータオブジェクトを使用します。生成

可能なデータ操作の範囲は、“3.2.1 コードの自動生成範囲”を参照してください。

また、コード生成時の注意事項は、“コード生成時の注意事項”を参照してください。

参照

ODBCブリッジコードの詳細は、Microsoft社のVisual Studioのマニュアルを参照してください。

ここでは、データアダプタ構成ウィザードを使用して、データ操作文を生成する例で説明します。

1. アプリケーションのフォーム、またはコンポーネント上に、ツールボックスからOdbcDataAdapterオブジェクトをドラッグし、データア

ダプタ構成ウィザードを起動します。

ポイント

ツールボックスにODBCデータソース用のデータオブジェクト(OdbcCommand、OdbcCommandBuilder、OdbcConnection、および

OdbcDataAdapter)が表示されていない場合は、ツールボックスを右クリックし、[アイテムの選択]からデータオブジェクトを追加し

てください。

2. [データ接続の選択]の[データアダプタで使用するデータ接続]に、データベースの接続名を選択し、[次へ]ボタンをクリックしま

す。

- 15 -

Page 21: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

3. コマンドの種類の選択画面で[SQLステートメントを使用する]ラジオボタンを選択し、[次へ]ボタンをクリックします。

注意

[既存のストアドプロシージャを使用]は選択しないでください。

4. [SQLステートメントの生成]の[クエリ ビルダ]ボタンをクリックし、[クエリ ビルダ]ダイアログボックスを表示します。

5. [クエリ ビルダ]ダイアログボックスで、データ操作文を作成します。

注意

データアダプタ構成ウィザードでは時間隔型を含む表のデータを指定することはできません。詳細は、“3.2.1 コードの自動生成

範囲”を参照してください。

6. データアダプタ構成ウィザードに戻り、[次へ]ボタンをクリックし、データ操作文を生成します。

7. [ウィザードの結果]画面の[完了]ボタンをクリックします。

8. 生成したODBCブリッジコードにコンパイルエラーがないことを確認します。

9. [ファイル]メニューの[すべてを保存]を選択し、プロジェクトを保存します。

コード生成時の注意事項

ODBCブリッジコードを自動生成する場合、以下のことに注意してください。

・ Visual Studioを利用してアプリケーションを開発する場合は、データベース名をスキーマ名として扱います。そのため、スキーマ名

と同一のデータベース名を定義してください。

- 16 -

Page 22: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

・ 各オブジェクトで生成したコードを変更する場合は、必ず各オブジェクトのプロパティ、またはデータアダプタ構成ウィザードを使用

してください。直接変更すると、Symfoware .NET Data Providerのコードが生成できない可能性があります。

・ 以下のOdbcTypeに対応するSymfowareDbTypeはありません。OdbcCommandプロパティ画面、またはOdbcDataAdapterプロパティ

画面で各オブジェクトのプロパティを変更する際に、選択しないでください。

- BigInt

- Binary

- Timestamp

- Bit

- Nchar

- Ntext

- NVarChar

- Text

- TinyInt

- UniqueIdentifier

・ 以下の各オブジェクトのプロパティは編集しないでください。エラーの原因や、自動生成したコードの正確性を確保できなくなる可

能性があります。

- GenerateMember

- ApplicationSettings配下のPropertyBinding

3.2.4 Symfoware .NET Data Providerのコードの生成

SNDPコード生成ツールを使用して、生成したODBCブリッジコードから、Symfoware .NET Data Providerのコードを生成します。

コード生成後にユーザインタフェース、またはデータ操作を変更したい場合は、変更したい操作まで戻り、コード生成までやり直してく

ださい。

ODBCブリッジコードからSymfoware .NET Data Providerのコードを生成する手順を説明します。

注意

・ SNDPコード生成ツールを実行する前に、ODBCブリッジコードにコンパイルエラーがないことを確認してください。エラーがあると、

Symfoware .NET Data Providerのコードもエラーになります。

・ SNDPコード生成ツールを実行する前に、プロジェクトを保存してください。保存していない場合、データが失われる可能性があり

ます。

なお、保存には、[ファイル]メニューの[すべてを保存]を使用してください。

・ Symfoware Server クライアント機能のインストール後にVisual Studioをインストールしている場合、SNDPコード生成ツールの機能

を有効とするために、以下の設定を実施してから、Visual Studioを再起動してください。

1. [ツール]メニューのアドインマネージャを選択します。

2. 表示されたアドインマネージャのダイアログで、アドイン“Make SNDP Code”のスタートアップの項目にチェックをします。

Symfoware .NET Data Providerのコード生成は、ファイル単位に行います。コード生成時に複数のファイルを開いている場合、現在有

効になっているファイルが変換されます。

1. Visual Studioでコードを生成するファイルを開きます。

2. フォームデザイナをアクティブにします。

- 17 -

Page 23: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

3. [ツール]メニューの[SNDPコード生成]を選択します。

4. フォームのリソースファイルにSQL文が書き込まれている場合、以下のダイアログボックスが表示されます。[はい]ボタンをクリック

し、リソースファイルをリロードしてください。

5. SNDPコード生成ツールが正常に終了したら、以下に示すとおり、Symfoware .NET Data Providerのコードが生成されたことを確

認してください。

[C#の場合]

#region "SNDP Wizard generated code "

(Symfoware .NET Data Providerのコード)

#endregion

注意

SNDPコード生成ツールで生成したコードは、直接変更しないでください。直接変更した場合、正常に動作しない可能性があります。

変更する場合は、ODBCブリッジコードの生成からやり直してください。

SNDPコード生成ツールにより生成されるオブジェクト名

SNDPコード生成ツールを使用すると、ODBCオブジェクト名の先頭に“SNDP_”が付加されます。アプリケーションロジック作成時に、

オブジェクト名を間違えないよう、注意してください。

SNDPコード生成ツールの実行前と実行後のオブジェクト名の例を示します。

実行前 実行後

OdbcConnection SNDP_OdbcConnection

MyObject SNDP_MyObject

3.3 アプリケーションロジックの作成

アプリケーションのロジックを作成します。

Symfoware .NET Data Providerのコードを自動生成した場合、アプリケーションロジックで、生成したコードを呼び出す必要があります。

ここでは、自動生成したコードの呼び出し方と、コネクションの作成について説明します。

- 18 -

Page 24: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

参照

そのほかのアプリケーションロジックの詳細は、“第5章 APIリファレンス”およびMicrosoft社のMSDNライブラリを参照してください。

注意

・ アプリケーションロジックを作成する際に、“SNDP_InitializeComponent”という関数名は定義しないでください。

・ アプリケーションロジックは、自動生成したコードと混在させないでください。混在させると、SNDPコード生成ツールを再実行したと

きに、ロジックが失われます。

3.3.1 自動生成したコードの呼出しとコネクションの作成

自動生成したSymfoware .NET Data Providerのコードの呼び出し方とコネクションの作成について説明します。

自動生成したコードの呼出し

アプリケーションロジックの 初に、SNDPコード生成ツールで生成したSymfoware .NET Data Providerのコードを呼び出す

SNDP_InitializeComponent関数を記述します。

Windowsアプリケーションの場合は、Form_Load関数の中に、Webアプリケーションの場合は、Page_Load関数の中に記載することを

推奨します。

なお、SNDP_InitializeComponent関数は、グローバルオブジェクトにメモリを配布するため、アプリケーションロジックの 初に1回だけ

呼び出すようにしてください。SNDP_InitializeComponent関数を2回以上呼び出すと、メモリリークやオーバーフローが生じる可能性が

あります。

コネクションの作成

コードを自動生成した場合、SNDP_InitializeComponent関数の直後に、データベースへの接続先情報(コネクション)を記述します。

コネクションには、2種類の指定方法があります。詳細は、“2.1 コネクション”を参照してください。

自動生成したコードの呼出しとコネクションの作成例

自動生成したコードの呼出しとコネクションの作成例を示します。

[C#の場合]

private void Form1_Load(object sender, EventArgs e)

{

this.SNDP_InitializeComponent();

this.SNDP_odbcConnection1.ConnectionString = "DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=root;PASSWORD=PASS01";

}

[Visual Basic .NETの場合]

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.SNDP_InitializeComponent()

Me.SNDP_OdbcConnection1.ConnectionString = "DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=root;PASSWORD=PASS01"

End Sub

- 19 -

Page 25: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

ポイント

Symfoware .NET Data Providerのコードを自動生成すると、自動生成コードの開始直後に、SNDP_InitializeComponent関数、および

作成したオブジェクトのConnectionStringプロパティが、コメントとして表示されます。このコメントをアプリケーションロジックにコピーし、

ConnectionStringプロパティに接続先情報を追加してください。

[C#の場合]

#region "SNDP Wizard generated code "

// このregion内の内容をコード エディタで変更しないでください。

// 下記のコードは自動生成したSymfoware .NET Data Providerのコードの呼び出し方法です。

// アプリケーションロジックの最初にコピーしてください。

// this.SNDP_InitializeComponent();

// this.SNDP_odbcConnection1.ConnectionString="実際の接続先情報を記載してください";

private Fujitsu.Symfoware.Client.SymfowareDataAdapter SNDP_odbcDataAdapter1;

:

#endregion

[Visual Basic .NETの場合]

#Region "SNDP Wizard generated code "

' このregion内の内容をコード エディタで変更しないでください。

' 下記のコードは自動生成したSymfoware .NET Data Providerのコードの呼び出し方法です。

' アプリケーションロジックの最初にコピーしてください。

' Me.SNDP_InitializeComponent()

' Me.SNDP_OdbcConnection1.ConnectionString="実際の接続先情報を記載してください"

Friend WithEvents SNDP_OdbcDataAdapter1 As Fujitsu.Symfoware.Client.SymfowareDataAdapter

:

#End Region

- 20 -

Page 26: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

第4章 アプリケーションのデバッグとチューニング

本章では、Symfoware .NET Data Providerを利用したアプリケーションのデバッグとチューニング方法を説明します。

4.1 アプリケーションのデバッグ

アプリケーションのテスト時、または運用時に異常が発生した場合のデバッグ方法について説明します。

Symfoware .NET Data Providerでは、以下の順序でデバッグすることを推奨します。

1. エラーメッセージによるデバッグ

エラーメッセージを基に対処方法を確認します。

参照

メッセージの意味と対処の詳細は、“メッセージ集”を参照してください。

2. EventLogによるデバッグ

エラーメッセージだけでは情報が不足していて、対処できない場合があります。この場合、EventLogの出力情報を確認すること

で、原因を突き止めることができます。詳細は、“4.1.1 EventLogによる対処”を参照してください。

3. Visual Studioによるデバッグ

エラーメッセージとEventLogで解決できない場合には、Visual Studioのデバッグ機能で対処してください。

参照

Visual Studioのデバッグの詳細は、Microsoft社のVisual Studioのマニュアルを参照してください。

4.1.1 EventLogによる対処

エラーメッセージだけでは情報が不足している場合、EventLogからアプリケーションの実行状況を確認し、対処してください。

EventLogでは、APIやアプリケーションの所要時間がどれくらいかかるか、API呼出しのシーケンスや、入出力パラメタが正しいかなど、

レスポンス性能やエラーの原因を確認することができます。

EventLogの取得方法と、出力内容について説明します。

EventLogの取得方法

EventLogの取得には、以下の2種類の方法があります。

・ アプリケーションの構成ファイルに指定する(推奨)

・ ConnectionStringプロパティに指定する

上記の指定方法は、データベースの接続先情報の指定方法と同じです。各指定方法の詳細は、“2.1 コネクション”を参照してくださ

い。

EventLogは、アプリケーションの性能を改善したり、アプリケーションの異常時に原因を追求したりするために取得します。このため、性

能情報やエラーの原因を確認したいときに取得し、問題が解決したあとはログの取得を中断できるように、ログの取得と中断をパラメタ

で切替えることができます。EventLogの取得と中断を簡単に切替えられるように、EventLogの取得には、アプリケーションの構成ファイ

ルを使用することを推奨します。

また、問題が発生したらいつでもEventLogを取得できるように、取得の有無に関わらず、あらかじめ指定しておくことを推奨します。

EventLogの取得には、ConnectionStringプロパティのキーワードを使用します。EventLogのキーワードの詳細は、“付録BConnectionStringプロパティのキーワード”を参照してください。

- 21 -

Page 27: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

EventLogの出力内容

EventLogを取得すると、指定した出力先に、コネクション単位に以下のファイル名で、ログが出力されます。

symfosndp_プロセスID_コネクション番号.log

以下に、出力レベル“Debug”の場合の出力例を示します。出力レベルごとの出力情報の詳細は、“B.1 eventlogキーワード”を参照し

てください。

出力例

Begin: 2009-04-10 16:59:00.921 // 開始時刻

Class: SymfowareConnection // クラス名

Method: Open // メソッド名

Input Variables: // 入力パラメタ名

void

SymfowareConnection Environment: // 環境情報(SymfowareConnectionクラスのプロパティ情報)

ConnectionState = Closed

Connection String:

ACCESS_PLAN = OFF

ARC_FULL = null

CAL_ERROR = REJECT

CONNECT TIMEOUT = 15

CONNECTIONLIFETIME = 0

DATA SOURCE = 10.34.186.126

DEFAULT_ACCESS_MODE = READ_WRITE

DEFAULT_DSI_TYPE = OBJECT

DEFAULT_INDEX_SIZE = null

DEFAULT_ISOLATION = DEFAULT

DEFAULT_OBJECT_TABLE_SIZE = null

DEFAULT_TABLE_SIZE = null

DSI_EXPAND_POINT = ON

EVENTLOG = (ON,DEBUG)

IGNORE_INDEX = NO

INACTIVE_INDEX_SCAN = YES

INCLUSION_DSI = null

INITIAL CATALOG = DB1

ISOLATION_WAIT = WAIT

JOIN_ORDER = INSIDE

JOIN_RULE = AUTO

MAX POOL SIZE = 100

MAX_PARALLEL = null

MAX_SQL = 32

MIN POOL SIZE = 0

MSG_LANG = JAPANESE

OPL_BUFFER_SIZE = 256

PARALLEL_SCAN = NO

PASSWORD = ******

POOLING = TRUE

PORT = 8003

R_LOCK = null

RCV_MODE = RCV

ROUTINE_SNAP = OFF

SCAN_KEY_ARITHMETIC_RANGE = YES

SCAN_KEY_CAST = YES

SCHEMA = fnst

SERVER_ENV_FILE = null

SORT_HASHAREA_SIZE = null

SORT_MEM_SIZE = null

SQL_LEVEL = SQL2007

SQL_TRACE = OFF

SS_RATE = 0.2,0.25,0.5,0.4,0.0001

TEMPORARY_INDEX_SIZE = null

- 22 -

Page 28: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

TEMPORARY_TABLE_SIZE = null

TID_SORT = YES

TID_UNION = YES

TRAN_SPEC = NONE

TRAN_TIME_LIMIT = 0

USER ID = ******

USQL_LOCK = SH

WAIT_TIME = 0

WORK_ALLOC_SPACESIZE = 10000,50000

WORK_MEM_SIZE = null

WORK_PATH = null

Return: void // 戻り値

End: 2009-04-10 16:59:01.593(00:00:00.6718750) // 終了時刻(経過時間)

Begin: 2009-04-10 16:59:01.640 // 開始時刻

Class: SymfowareDataAdapter // クラス名

Method: Fill // メソッド名

Input Variables: // 入力パラメタ名

dataSet: System.Data.DataSet

srcTable: TESTTBL

SymfowareDataAdapter Environment: // 環境情報(SymfowareDataAdapterクラスのプロパティ情報)

SelectCommandText = SELECT * FROM SAMPLE1.TESTTBL

Row Content:

KEY_C = 2

DEC_C = 9999999.999

DAT_C = 2007/04/05 0:00:00

CHA_C = TEST DATA

Row Content:

KEY_C = 133

DEC_C = 500.001

DAT_C = 2007/04/01 0:00:00

CHA_C = TEST DATA

Row Content:

KEY_C = 134

DEC_C = 500.001

DAT_C = 2007/04/01 0:00:00

CHA_C = TEST DATA

Return: 3 // 戻り値

End: 2009-04-10 16:59:02.46(00:00:00.4062500) // 終了時刻(経過時間)

Begin: 2009-04-10 16:59:02.359 // 開始時刻

Class: SymfowareConnection // クラス名

Method: Close // メソッド名

Input Variables: // 入力パラメタ名

void

SymfowareConnection Environment: // 環境情報(SymfowareConnectionクラスのプロパティ情報)

ConnectionState = Open

Return: void // 戻り値

End: 2009-04-10 16:59:02.359(00:00:00) // 終了時刻(経過時間)

4.2 アプリケーションのチューニング

Symfoware .NET Data Providerを利用したアプリケーションのチューニングについて説明します。

Symfoware .NET Data Providerでは、以下のチューニングができます。

・ 大コネクション数

・ コネクションの保持期限

・ コネクションプールの実装

・ 大/ 小プールコネクション数

- 23 -

Page 29: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

・ メッセージの出力言語

・ Symfoware Server専用のアプリケーションの動作環境

(クライアント用の動作環境ファイルの実行パラメタ)

チューニング方法

アプリケーションのチューニングには、以下の2種類の方法があります。

・ アプリケーションの構成ファイルに指定する(推奨)

・ ConnectionStringプロパティに指定する

上記の指定方法は、データベースの接続先情報の指定方法と同じです。各指定方法の詳細は、“2.1 コネクション”を参照してくださ

い。

チューニングには、ConnectionStringプロパティのキーワードを使用します。キーワードの種類と設定値の詳細は、“付録B ConnectionStringプロパティのキーワード”を参照してください。

Symfoware Serverの動作環境ファイルとの関係

Symfoware .NET Data Providerでは、Symfoware Serverのクライアント用の動作環境ファイルの実行パラメタを指定することができま

す。実行パラメタは、ConnectionStringプロパティのtuneparamキーワードに指定します。

tuneparamキーワード、Symfoware Serverのシステム用の動作環境ファイル、およびサーバ用の動作環境ファイルが重複して指定され

た場合、実行パラメタの優先順位は以下のとおりです。

1. サーバ用の動作環境ファイル

2. tuneparamキーワード

3. システム用の動作環境ファイル

注意

サーバ用の動作環境ファイルにDSO_LOCKを指定した場合、サーバ接続時にエラーが発生します。サーバ用の動作環境ファイルに

DSO_LOCKを指定しないでください。

- 24 -

Page 30: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

第5章 APIリファレンス

Symfoware .NET Data ProviderがサポートするAPIについて説明します。

5.1 Symfoware .NET Data Providerのクラス

Symfoware .NET Data Providerでは、Fujitsu.Symfoware.Client名前空間として、固有のクラスを提供します。

Fujitsu.Symfoware.Client名前空間は、Microsoft社のSystem.Data.SqlClient名前空間(以降、SqlClient名前空間と略します)に準拠し

ています。このため、Symfoware .NET Data ProviderのAPIの詳細は、Microsoft社のMSDNライブラリを参照してください。

なお、Fujitsu.Symfoware.Client名前空間とSqlClient名前空間では、APIの名前が異なるものがあります。名前が異なるAPIは、Microsoft社のMSDNライブラリを参照する際に、対応する名前に読み替えてください。

以下に、Fujitsu.Symfoware.Client名前空間とSqlClient名前空間の名前の対応関係を示します。

表5.1 Fujitsu.Symfoware.Client名前空間とSqlClient名前空間のクラス名の対応関係

Fujitsu.Symfoware.Client名前空間のクラス名 SqlClient名前空間のクラス名

SymfowareCommand SqlCommand

SymfowareCommandBuilder SqlCommandBuilder

SymfowareConnection SqlConnection

SymfowareConnectionStringBuilder SqlConnectionStringBuilder

SymfowareDataAdapter SqlDataAdapter

SymfowareDataReader SqlDataReader

SymfowareError SqlError

SymfowareErrorCollection SqlErrorCollection

SymfowareException SqlException

SymfowareFactory SqlClientFactory

SymfowareInfoMessageEventArgs SqlInfoMessageEventArgs

SymfowareParameter SqlParameter

SymfowareParameterCollection SqlParameterCollection

SymfowareRowUpdatedEventArgs SqlRowUpdatedEventArgs

SymfowareRowUpdatingEventArgs SqlRowUpdatingEventArgs

SymfowareTransaction SqlTransaction

表5.2 Fujitsu.Symfoware.Client名前空間とSqlClient名前空間のデリゲート名の対応関係

Fujitsu.Symfoware.Client名前空間のデリゲート名 SqlClient名前空間のデリゲート名

SymfowareInfoMessageEventHandler SqlInfoMessageEventHandler

SymfowareRowUpdatedEventHandler SqlRowUpdatedEventHandler

SymfowareRowUpdatingEventHandler SqlRowUpdatingEventHandler

表5.3 Fujitsu.Symfoware.Client名前空間とSqlClient名前空間のプロパティ名の対応関係

Fujitsu.Symfoware.Client名前空間のプロパティ名 SqlClient名前空間のプロパティ名

SymfowareParameter.SymfowareDbType SqlParameter.SqlDbType

- 25 -

Page 31: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

Symfoware .NET Data ProviderでサポートするAPIの詳細は、“5.2 サポートAPI一覧”を参照してください。

また、Symfoware .NET Data Providerの拡張APIの詳細は、“5.3 拡張API”を参照してください。

5.2 サポートAPI一覧

Symfoware .NET Data ProviderでサポートするAPIを以下に示します。

各APIの詳細は、Microsoft社のMSDNライブラリの.NET Framework Data Provider for SQL ServerのAPIを参照してください。一部のAPIには留意事項があります。詳細は、“5.4 留意事項”を参照してください。

Symfoware .NET Data Providerの拡張APIの詳細は、“5.3 拡張API”を参照してください。

表5.4 Symfoware .NET Data ProviderのサポートAPI一覧

クラス名 メンバ サポート状況

SymfowareCommand パブリックコンストラクタ SymfowareCommandコンストラクタ ○

パブリックプロパティ CommandText △

CommandTimeout △

CommandType ○

Connection ○

Container ○

DesignTimeVisible ○

Parameters ○

Site ○

Transaction ○

UpdatedRowSource ○

パブリックメソッド Cancel ○

Clone ○

CreateObjRef ○

CreateParameter ○

Dispose △

Equals ○

ExecuteNonQuery △

ExecuteReader △

ExecuteScalar △

GetHashCode ○

GetLifetimeService ○

GetType ○

InitializeLifetimeService ○

Prepare ○

ResetCommandTimeout ○

ToString ○

パブリックイベント Disposed ○

プロテクトプロパティ DesignMode ○

Events ○

- 26 -

Page 32: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

プロテクトメソッド Dispose ○

Finalize ○

GetService ○

MemberwiseClone ○

SymfowareCommandBuilder パブリックコンストラクタ SymfowareCommandBuilderコンストラクタ ○

パブリックプロパティ Container ○

DataAdapter ○

QuotePrefix ○

QuoteSuffix ○

Site ○

パブリックメソッド CreateObjRef ○

DeriveParameters ○

Dispose ○

Equals ○

GetDeleteCommand ○

GetHashCode ○

GetInsertCommand ○

GetLifetimeService ○

GetType ○

GetUpdateCommand ○

InitializeLifetimeService ○

RefreshSchema ○

ToString ○

パブリックイベント Disposed ○

プロテクトプロパティ DesignMode ○

Events ○

プロテクトメソッド Dispose ○

Finalize ○

GetService ○

MemberwiseClone ○

SymfowareConnection パブリックコンストラクタ SymfowareConnectionコンストラクタ ○

パブリックプロパティ ConnectionString △

ConnectionTimeout ○

Container ○

Database ○

Datasource ○

Host ◎

Port ◎

ServerVersion △

- 27 -

Page 33: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

Site ○

State ○

パブリックメソッド BeginTransaction ◎(注)

ChangeDatabase ○

ChangePassword ○

ClearAllPools ○

ClearPool ○

Clone ○

Close ○

CreateCommand ○

CreateObjRef ○

Dispose ○

Equals ○

GetHashCode ○

GetLifetimeService ○

GetSchema ○

GetType ○

InitializeLifetimeService ○

Open ○

ReleaseTable ◎

SetRole ◎

SetUserPassword ◎

ToString ○

パブリックイベント Disposed ○

StateChange ○

InfoMessage ○

プロテクトプロパティ DesignMode ○

Events ○

プロテクトメソッド Dispose ○

Finalize ○

GetService ○

MemberwiseClone ○

SymfowareConnectionStringBuilder

パブリックコンストラクタ SymfowareConnectionStringBuilderコンス

トラクタ

パブリックプロパティ BrowsableConnectionString ○

ConnectionLifetime ◎

ConnectionString ○

ConnectTimeout ○

Count ○

DataSource ○

- 28 -

Page 34: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

InitialCatalog ○

IsFixedSize ○

IsReadOnly ○

Item ○

Keys ○

MaxPoolSize ○

MinPoolSize ○

Password ○

Pooling ○

Port ◎

Schema ◎

UserID ○

Values ○

パブリックメソッド Add ○

AppendKeyValuePair ○

Clear ○

ContainsKey ○

Equals ○

EquivalentTo ○

GetHashCode ○

GetType ○

ReferenceEquals ○

Remove ○

ShouldSerialize ○

ToString ○

TryGetValue ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareDataAdapter パブリックコンストラクタ SymfowareDataAdapterコンストラクタ ○

パブリックプロパティ AcceptChangesDuringFill ○

AcceptChangesDuringUpdate ○

Container ○

ContinueUpdateOnError ○

DeleteCommand ○

FillLoadOption ○

InsertCommand ○

MissingMappingAction ○

MissingSchemaAction ○

ReturnProviderSpecificTypes ○

- 29 -

Page 35: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

SelectCommand ○

Site ○

TableMappings ○

UpdateBatchSize ○

UpdateCommand ○

パブリックメソッド CreateObjRef ○

Dispose ○

Equals ○

Fill ○

FillSchema ○

GetFillParameters ○

GetHashCode ○

GetLifetimeService ○

GetType ○

InitializeLifetimeService ○

ToString ○

Update ○

パブリックイベント Disposed ○

FillError ○

RowUpdated ○

RowUpdating ○

プロテクトプロパティ DesignMode ○

Events ○

プロテクトメソッド CloneInternals ○

CreateRowUpdatedEvent ○

CreateRowUpdatingEvent ○

CreateTableMappings ○

Dispose ○

Fill ○

FillSchema ○

Finalize ○

GetService ○

MemberwiseClone ○

OnFillError ○

OnRowUpdated ○

OnRowUpdating ○

ShouldSerializeTableMappings ○

Update ○

SymfowareDataReader パブリックプロパティ Depth ○

- 30 -

Page 36: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

IsClosed ○

RecordsAffected ○

FieldCount ○

HasRows ○

Item ○

パブリックメソッド Close △

CreateObjRef ○

Equals ○

GetBoolean ○

GetByte ○

GetBytes ○

GetChar ×

GetChars △

GetDataTypeName ○

GetDateTime ○

GetDecimal ○

GetDouble ○

GetFieldType ○

GetFloat ○

GetGuid ×

GetHashCode ○

GetInt16 ○

GetInt32 ○

GetInt64 ○

GetLifetimeService ○

GetName ○

GetOrdinal ○

GetSchemaTable △

GetString △

GetType ○

GetValue ○

GetValues ○

InitializeLifetimeService ○

IsDBNull ○

NextResult ○

Read ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

- 31 -

Page 37: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

SymfowareError パブリックプロパティ Message ○

Number ○

Source ○

SQLState △

パブリックメソッド Equals ○

GetHashCode ○

GetType ○

ToString △

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareErrorCollection パブリックプロパティ Count ○

Item ○

パブリックメソッド CopyTo ○

Equals ○

GetHashCode ○

GetType ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareException パブリックプロパティ Errors ○

HelpLink ○

InnerException ○

Message ○

Number ○

Source ○

StackTrace ○

SQLState ○

TargetSite ○

パブリックメソッド Equals ○

GetBaseException ○

GetHashCode ○

GetObjectData ○

GetType ○

ToString ○

プロテクトプロパティ HResult ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareFactory パブリックコンストラクタ SymfowareFactoryコンストラクタ ○

パブリックフィールド Instance ○

- 32 -

Page 38: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

パブリックプロパティ CanCreateDataSourceEnumerator ○

パブリックメソッド CreateCommand ○

CreateCommandBuilder ○

CreateConnection ○

CreateConnectionStringBuilder ○

CreateDataAdapter ○

CreateDataSourceEnumerator ○

CreateParameter ○

CreatePermission ○

Equals ○

GetHashCode ○

GetType ○

ReferenceEquals ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareInfoMessageEventArgs

パブリックプロパティ Errors ○

Message ○

Source ○

SymfowareParameter パブリックコンストラクタ SymfowareParameterコンストラクタ △

パブリックプロパティ DbType ○

Direction △

IsNullable ○

SymfowareDbType △

ParameterName △

Precision ○

Scale ○

Size ○

SourceColumn ○

SourceVersion ○

Value ○

パブリックメソッド CreateObjRef ○

Equals ○

GetHashCode ○

GetLifetimeService ○

GetType ○

InitializeLifetimeService ○

ToString ○

プロテクトメソッド Finalize ○

- 33 -

Page 39: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

MemberwiseClone ○

SymfowareParameterCollection パブリックプロパティ Count ○

Item ○

パブリックメソッド Add △

AddRange ○

Clear ○

Contains ○

CopyTo ○

IndexOf ○

Insert ○

Remove ○

RemoveAt ○

CreateObjRef ○

Equals ○

GetHashCode ○

GetLifetimeService ○

GetType ○

InitializeLifetimeService ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareRowUpdatedEventArgs

パブリックコンストラクタ SymfowareRowUpdatedEventArgsコンスト

ラクタ

パブリックプロパティ Command ○

Errors ○

Row ○

StatementType ○

Status ○

TableMapping ○

パブリックメソッド Equals ○

GetHashCode ○

GetType ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareRowUpdatingEventArgs

パブリックコンストラクタ SymfowareRowUpdatingEventArgsコンスト

ラクタ

パブリックプロパティ Command ○

Errors ○

Row ○

- 34 -

Page 40: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ サポート状況

StatementType ○

Status ○

TableMapping ○

パブリックメソッド Equals ○

GetHashCode ○

GetType ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

SymfowareTransaction パブリックプロパティ Connection ○

IsolationLevel △

AccessMode ◎

パブリックメソッド Commit ○

CreateObjRef ○

Dispose ○

Equals ○

GetHashCode ○

GetLifetimeService ○

GetType ○

InitializeLifetimeService ○

Rollback ○

ToString ○

プロテクトメソッド Finalize ○

MemberwiseClone ○

◎: Symfoware .NET Data Providerの拡張API○: .NET Framework Data Provider for SQL ServerのAPIと同様

△: Symfoware .NET Data Providerの留意事項あり

×: Symfoware .NET Data Providerでは使用不可

注)IsolationLevelの指定に留意事項があります。

5.3 拡張APISymfoware .NET Data Providerの拡張APIについて説明します。

拡張API以外のサポートAPIの詳細は、Microsoft社のMSDNライブラリを参照してください。

5.3.1 SymfowareConnectionクラス

SymfowareConnectionクラスで拡張したAPIは、以下のメンバです。

・ Hostプロパティ

・ Portプロパティ

・ BeginTransactionメソッド

・ ReleaseTableメソッド

- 35 -

Page 41: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

・ SetRoleメソッド

・ SetUserPasswordメソッド

Hostプロパティ

接続するSymfoware Serverのホスト名を取得します。

記述形式

[C#]

public string Host {get;}

[Visual Basic .NET]

Public ReadOnly Property Host As String

プロパティ値

接続するSymfoware Serverのホスト名。

Portプロパティ

RDB2_TCP連携で使用するポート番号を取得します。

記述形式

[C#]

public int Port {get;}

[Visual Basic .NET]

Public ReadOnly Property Port As Integer

プロパティ値

RDB2_TCP連携で使用するポート番号。

BeginTransactionメソッド

データベース トランザクションを開始します。既存のオーバーロードに加え、以下のオーバーロードを使用することができます。

オーバーロードの一覧

アクセスモードを指定して、データベース トランザクションを開始します。

[C#] public SymfowareTransaction BeginTransaction(AccessMode);

[Visual Basic .NET] Public Function BeginTransaction (accessMode As SymfowareAccessMode) AsSymfowareTransaction

アクセスモードと分離レベルを指定して、データベース トランザクションを開始します。記述形式、およびパラメタの詳細は、

IsolationLevel、およびAccessModeを参照してください。

[C#] public SymfowareTransaction BeginTransaction (IsolationLevel, AccessMode);

[Visual Basic .NET] Public Function BeginTransaction (level As IsolationLevel,accessMode As SymfowareAccessMode)As SymfowareTransaction

記述形式

[C#]

public SymfowareTransaction BeginTransaction(SymfowareAccessMode accmod);

[Visual Basic .NET]

Public Function BeginTransaction (accmod As SymfowareAccessMode) As SymfowareTransaction

- 36 -

Page 42: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

パラメタ

accmod

トランザクションのAccessMode列挙体のパラメタを指定します。

ReadOnly

読込み専用モード。

トランザクション内で参照系のSQL文のみ、実行することができます。

ReadWrite

更新可能モード。

トランザクション内で参照系および更新系のSQL文を実行することができます。

戻り値

新しいトランザクションを表すオブジェクト。

例外

例外の種類 条件

ArgumentException 無効な引数が指定されました。

または

必要な引数が指定されませんでした。

InvalidOperationException 並列トランザクションはサポートされていません。

ReleaseTableメソッド

一時表に格納したデータを削除し、一時表の領域を解放します。

記述形式

[C#]

public void ReleaseTable (String schemaName, String tableName);

[Visual Basic .NET]

Public Sub ReleaseTable (schemaName As String,tableName As String)

パラメタ

schemaName

スキーマの名前。

tableName

解放する一時表の名前。

例外

例外の種類 条件

ArgumentException schemaName、またはtableNameに、NULLまたは空文字列が指

定されました。

InvalidOperationException SymfowareConnectionがクローズされました。

または

SymfowareDataReaderがオープン中です。

SymfowareException サーバ側に存在しないスキーマ名、またはテーブル名が指定さ

れました。

- 37 -

Page 43: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

使用例

[C#]

public void ReleaseTableWithName(string modifiedTable)

{

string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";

SymfowareConnection conn1 = new SymfowareConnection(connString);

try

{

conn1.Open();

conn1.ReleaseTable("SC1",modifiedTable);

conn1.Close();

}

catch (SymfowareException ex1)

{

// エラー処理ルーチンを記述

}catch (Exception ex2)

{

// エラー処理ルーチンを記述

}

finally

{

if ((conn1!= null) && (conn1.State == ConnectionState.Open))

{

conn1.Close();

}

}

}

[Visual Basic .NET]

Public Sub ReleaseTableWithName(ByVal modifiedTable As String)

Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user

id=symfo;password=symfo;"

Dim conn1 As New SymfowareConnection(connString)

Try

conn1.Open()

conn1.ReleaseTable("SC1", modifiedTable)

conn1.Close()

Catch ex1 As SymfowareException

'エラー処理ルーチンを記述

Catch ex2 As Exception

'エラー処理ルーチンを記述

Finally

If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then

conn1.Close()

End If

End Try

End Sub

SetRoleメソッド

現行SQLセションに対してロールを有効にします。

記述形式

[C#]

public void SetRole (String roleName, Int32 roleType);

- 38 -

Page 44: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

[Visual Basic .NET]

Public Sub SetRole (roleName As String,roleType As Integer)

パラメタ

roleName

ロール名。現行SQLセションに対して有効にするロールの名前を指定します。実行者はロールの権限受領者でなければなりま

せん。ロール名に空白を含めた場合は、前後の空白を取り除いた値をロール名とします。

roleType

ロール種別。以下のいずれかの値を指定します。

0:ロール名指定

1:DEFAULT

現行SQLセションでデフォルトロールの設定を有効にします。

2:NONE

現行SQLセションで有効となっているロールを無効にします。

注意

roleTypeに1または2を指定した場合、roleNameの指定は無効となります。

例外

例外の種類 条件

ArgumentException roleNameにNULLまたは空文字列が指定されました。

または

roleTypeに有効範囲外の値が設定されました。

InvalidOperationException SymfowareConnectionがクローズされました。

または

SymfowareDataReaderがオープン中です。

SymfowareException サーバ側に存在しないロール名が指定されました。

使用例

[C#]

public void ChangeRolesWithName(string roleName,int roleType)

{

string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";

SymfowareConnection conn1 = new SymfowareConnection(connString);

try

{

conn1.Open();

conn1.SetRole(roleName,roleType);

conn1.Close();

}

catch (SymfowareException ex1)

{

// エラー処理ルーチンを記述

}

catch (Exception ex2)

{

// エラー処理ルーチンを記述

- 39 -

Page 45: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

}

finally

{

if ((conn1!= null) && (conn1.State == ConnectionState.Open))

{

conn1.Close();

}

}

}

[Visual Basic .NET]

Public Sub ChangeRolesWithName(ByVal roleName As String, ByVal roleType As Integer)

Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user

id=symfo;password=symfo;"

Dim conn1 As New SymfowareConnection(connString)

Try

conn1.Open()

conn1.SetRole(roleName, roleType)

conn1.Close()

Catch exception1 As SymfowareException

'エラー処理ルーチンを記述

Catch exception2 As Exception

'エラー処理ルーチンを記述

Finally

If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then

conn1.Close()

End If

End Try

End Sub

SetUserPasswordメソッド

現行セションの利用者(認可識別子)のパスワードを変更します。

記述形式

[C#]

public void SetUserPassword (String password);

[Visual Basic .NET]

Public Sub SetUserPassword (password As String)

パラメタ

password

変更後のパスワード。

解説

- 変更後のパスワードを指定します。文字列定数、または文字列型の埋込み変数で指定してください。

- 変更後のパスワードは、現在使用しているパスワードに対し、3文字以上違うものでなければなりません。また、大文字と小文字

は同じ文字として扱います。

- パスワードに空白を含めた場合は、前後の空白を取り除いた値をパスワードとします。

- パスワードの更新に失敗した場合、例外が返ります。

例外

例外の種類 条件

ArgumentException passwordにNULLまたは空文字列が指定されました。

- 40 -

Page 46: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

例外の種類 条件

InvalidOperationException SymfowareConnectionがクローズされました。

または

SymfowareDataReaderがオープン中です。

SymfowareException 指定したパスワードが、設定条件を満たしていません。

使用例

[C#]

public void ChangeUserPassword(string password)

{

string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";

SymfowareConnection conn1 = new SymfowareConnection(connString);

try

{

conn1.Open();

conn1.SetUserPassword(password);

conn1.Close();

}

catch (SymfowareException ex1)

{

// エラー処理ルーチンを記述

}

catch (Exception ex2)

{

// エラー処理ルーチンを記述

}

finally

{

if ((conn1!= null) && (conn1.State == ConnectionState.Open))

{

conn1.Close();

}

}

}

[Visual Basic .NET]

Public Sub ChangeUserPassword(ByVal password As String)

Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user

id=symfo;password=symfo;"

Dim conn1 As New SymfowareConnection(connString)

Try

conn1.Open()

conn1.SetUserPassword(password)

conn1.Close()

Catch exception1 As SymfowareException

'エラー処理ルーチンを記述

Catch exception2 As Exception

'エラー処理ルーチンを記述

Finally

If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then

conn1.Close()

End If

End Try

End Sub

- 41 -

Page 47: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

5.3.2 SymfowareConnectionStringBuilderクラス

SymfowareConnectionStringBuilderクラスで拡張したAPIは、以下のメンバです。

・ ConnectionLifetimeプロパティ

・ Portプロパティ

・ Schemaプロパティ

ConnectionLifetimeプロパティ

プールしているコネクションのタイムアウトの値を取得、または設定します。

記述形式

[C#]

public int ConnectionLifetime {get;set;}

[Visual Basic .NET]

Public Property ConnectionLifetime As Integer

プロパティ値

プールしているコネクションのタイムアウトの値。

Portプロパティ

RDB2_TCP連携で使用するポート番号を取得、または設定します。

記述形式

[C#]

public int Port {get;set;}

[Visual Basic .NET]

Public Property Port As Integer

プロパティ値

RDB2_TCP連携で使用するポート番号。

Schemaプロパティ

接続するSymfoware Serverのデフォルトスキーマ名を取得、または設定します。

記述形式

[C#]

public string Schema {get;set;}

[Visual Basic .NET]

Public Property Schema As String

プロパティ値

アプリケーションで使用するSQL文のデフォルトスキーマ名。

5.3.3 SymfowareTransactionクラス

SymfowareTransactionクラスで拡張したAPIは以下のとおりです。

AccessModeプロパティ

トランザクションのアクセスモードを取得します。

- 42 -

Page 48: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

記述形式

[C#]

public SymfowareAccessMode AccessMode {get;}

[Visual Basic .NET]

Public ReadOnly Property AccessMode As SymfowareAccessMode

プロパティ値

トランザクションのアクセスモード。既定値はReadWriteです。

解説

並列トランザクションはサポートしていません。このため、アクセスモードはトランザクション全体に適用されます。

5.4 留意事項

サポートAPIの使用上の留意事項は以下のとおりです。各APIの詳細は、Microsoft社のMSDNライブラリを参照してください。

クラス名 メンバ 留意事項

SymfowareCommand CommandText ・ SymfowareCommand.CommandTextプロパティでは、疑問符(?)のプ

レースホルダを使用してください。名前付きパラメタは使用できませ

ん。

SymfowareCommand.CommandTextプロパティに名前付きパラメタを使

用した場合、ExecuteNonQueryメソッド、ExecuteReaderメソッドまたは

ExecuteScalarメソッド実行時にエラーとなります。

例:

SELECT * FROM General.Customers WHERE CustomerID = ?

・ SymfowareCommand.CommandTextプロパティに疑問符プレースホル

ダ を 利 用 し た 場 合 、 疑 問 符 プ レ ー ス ホ ル ダ の 順 序 と 、

SymfowareParameterCollection.Add メ ソ ッ ド に よ り

SymfowareParameterCollectionにSymfowareParameterオブジェクトを追

加する順序を一致させてください。

・ SymfowareCommand.CommandTextプロパティに疑問符プレースホル

ダを利用した場合、SymfowareParameter.ParameterNameプロパティに

パ ラ メ タ 名 を 指 定 し て も 、 SymfowareParameterCollection に

SymfowareParameterオブジェクトを追加した順序で処理されます。

CommandTimeout SymfowareCommand.CommandTimeoutプロパティへの設定値は無視され

ます。また、プロパティを参照すると、必ず0が返ります。コマンドの実行待ち

時間を指定する場合は、SymfowareConnection.ConnectionStringプロパティ

のWAIT_TIMEを使用してください。

Dispose 以下のオブジェクトを生成すると、.NET Framework環境だけではなく、サー

バ側にも資源が作成されます。

・ SymfowareCommandオブジェクト

・ SymfowareDataReaderオブジェクト

作成された資源は、不要になった時点でSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを実行することにより、即

座に解放することができます。しかし、これらのメソッドを省略し、資源解放

をガーベジコレクションに任せている場合、ガーベジコレクションは.NETFramework環境の空間を制御しているだけなので、サーバ側に無駄な資源

が残る可能性があり、性能上の問題となります。これらのオブジェクトが不要

となった場合は、必ずSymfowareCommand.Disposeメソッド、または

SymfowareDataReader.Closeメソッドを指定し、解放してください。

- 43 -

Page 49: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ 留意事項

ExecuteNonQuery SymfowareCommand.CommandTextプロパティでは、疑問符(?)のプレース

ホルダを使用してください。名前付きパラメタは使用できません。

SymfowareCommand.CommandTextプロパティに名前付きパラメタを使用

した場合、ExecuteNonQueryメソッド、ExecuteReaderメソッドまたは

ExecuteScalarメソッド実行時にエラーとなります。

例:

SELECT * FROM General.Customers WHERE CustomerID = ?

ExecuteReader

ExecuteScalar

SymfowareConnection - 1つのSymfowareConnectionオブジェクトで、同時に実行可能な

SymfowareCommandオブジェクトの数は、32000個です。

ConnectionString SymfowareConnection.ConnectionStringプロパティには、Symfoware .NETData Provider固有のキーワードを指定することができます。キーワードの詳

細は、“付録B ConnectionStringプロパティのキーワード”を参照してくださ

い。

ServerVersion SymfowareConnection.ServerVersionプロパティで取得するバージョンレベ

ルの形式は、以下のとおりです。

VxxLyyxxはSymfoware Serverのバージョンを、yyはSymfoware Serverのレベルを

表します。バージョンおよびレベルは、それぞれ2桁で表示されます。

BeginTransaction ・ SymfowareConnection.BeginTransaction メ ソ ッ ド の IsolationLevelに“Chaos”、“Unspecified”および“Snapshot”は指定できません。指定

するとエラーが返却されます。

・ システム用の動作環境ファイルのR_LOCKがNOまたはtuneparamキー

ワ ー ド の R_LOCK が NO の 場 合 、

SymfowareConnection.BeginTransaction メ ソ ッ ドの IsolationLevel にRepeatableReadを指定すると、独立性水準はSERIALIZABLEになりま

す。

・ システム用の動作環境ファイルのR_LOCKがYESまたはtuneparamキー

ワ ー ド の R_LOCK が YES の 場 合 、

SymfowareConnection.BeginTransaction メ ソ ッ ドの IsolationLevel にSerializableを指定すると、独立性水準はREPEATABLE READになり

ます。

SymfowareConnectionStringBuilder

SymfowareConnectionStringBuilderコンス

トラクタ

SymfowareConnectionStringBuilderコンストラクタに指定する

ConnectionStringには、eventlogキーワードおよびtuneparamキーワードを含

むことはできません。

SymfowareDataReader Close 以下のオブジェクトを生成すると、.NET Framework環境だけではなく、サー

バ側にも資源が作成されます。

・ SymfowareCommandオブジェクト

・ SymfowareDataReaderオブジェクト

作成された資源は、不要になった時点でSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを実行することにより、即

座に解放することができます。しかし、これらのメソッドを省略し、資源解放

をガーベジコレクションに任せている場合、ガーベジコレクションは.NETFramework環境の空間を制御しているだけなので、サーバ側に無駄な資源

が残る可能性があり、性能上の問題となります。これらのオブジェクトが不要

となった場合は、必ずSymfowareCommand.Disposeメソッド、または

SymfowareDataReader.Closeメソッドを指定し、解放してください。

GetChars SymfowareDataReader.GetCharsメソッドでは、すべての場合において

GetCharsを使用してVarChar列をチャンクとして読み取ることができます。

- 44 -

Page 50: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ 留意事項

GetSchemaTable 他システムから接続しているコネクション数がMAX_CONNECT_TCPに指

定した接続数に達している場合、SymfowareDataRearder.GetSchemaTableメソッドによりスキーマ情報を取得することはできません。

GetString SymfowareDataReader.GetStringメソッドでは、変換は実行されません。その

ため、取得するデータは文字列である必要があります。文字列でない場合

は、例外が生成されます。

SymfowareError SQLState SymfowareError.SQLStateプロパティでは、SQLSTATEを取得します。

ToString SymfowareError.ToStringメソッドで取得するエラーテキスト形式は以下のと

おりです。

[Symfoware]JYPメッセージ番号 エラーメッセージ

SymfowareParameter SymfowareParameterコンストラクタ

SymfowareParameterコンストラクタのパラメタ、またはSymfowareParamterのDirectionプロパティに、ParameterDirection.ReturnValueが指定された

SymfowareParameterオブジェクトには、SQL文を実行しても、何も値を設定

しません。すでに値が設定されている場合には、そのまま返却します。Direction

SymfowareDbType SymfowareParameter.SymfowareDbTypeプロパティに指定可能なデータ型

の詳細は、以下のとおりです。既定値はVarCharです。

・ BLOB

・ Char

・ VarChar

・ NChar

・ NCharVarying

・ Date

・ Time

・ Timestamp

・ Numeric

・ Decimal

・ Real

・ DoublePrecision

・ SmallInt

・ Int

・ IntervalYear

・ IntervalMonth

・ IntervalYearToMonth

・ IntervalDay

・ IntervalDayToHour

・ IntervalDayToMinute

・ IntervalDayToSecond

・ IntervalHour

・ IntervalHourToMinute

・ IntervalHourToSecond

- 45 -

Page 51: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

クラス名 メンバ 留意事項

・ IntervalMinute

・ IntervalMinuteToSecond

・ IntervalSecond

ParameterName SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを

利用した場合、SymfowareParameter.ParameterNameプロパティにパラメタ

名を指定しても、SymfowareParameterCollectionにSymfowareParameterオブジェクトを追加した順序で処理されます。

SymfowareParameterCollection

Add SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを

利用した場合、疑問符プレースホルダの順序と、

SymfowareParameterCollection.Addメソッドにより

SymfowareParameterCollectionにSymfowareParameterオブジェクトを追加

する順序を一致させてください。

SymfowareTransaction IsolationLevel SymfowareTransaction.IsolationLevelプロパティの既定値

は、“ReadUncommitted”です。

- 46 -

Page 52: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

付録A サンプルプログラム

本付録では、Symfoware .NET Data Providerを利用したWebアプリケーションのサンプルコード、および留意事項について説明しま

す。

なお、このサンプルコードを実行する場合は、Visual Studio 2005またはVisual Studio 2008を使用してください。サンプルコードはC#、およびVisual Basic .NETで作成しています。

A.1 サンプル実行前の準備

本付録に記載されているサンプルコードは、以下のデータベース定義環境への接続を想定しています。

参照

データベースの作成についての詳細は、“RDB運用ガイド(データベース定義編)”を参照してください。

データベース定義環境

データベース名:TEST

スキーマ名:SAMPLE1

使用者名:USER01

パスワード:PASS01

表の定義

表名:TESTTBL

列名 データ型 列制約定義

KEY_C INTEGER NOT NULLPRIMARY KEY

DEC_C DECIMAL(10,3)

DAT_C DATE

CHA_C CHAR(250)

プロシジャルーチンの定義

ルーチン名:COUNTPRC

パラメタモード パラメタ名 データ型

IN DAT_P DATE

OUT OUT_P INTEGER

OUT PRCSTATE CHAR(5)

OUT PRCMSG CHAR(255)

複合文

DECLARE SQLSTATE CHAR(5);DECLARE SQLMSG CHAR(255);

SELECT COUNT(*) INTO OUT_P FROM SAMPLE1.TESTTBLWHERE DAT_C > DAT_P;

- 47 -

Page 53: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

パラメタモード パラメタ名 データ型

SET PRCSTATE = SQLSTATE;SET PRCMSG = SQLMSG;

A.2 C♯のサンプル

C#のサンプルコードおよび留意事項について説明します。

A.2.1 接続および切断

接続および切断をするサンプルコードについて説明します。

本サンプルコードは、取得データをWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

ConnectionStringプロパティへ接続文字列を設定します。

2. SymfowareConnection.Openメソッドでコネクションを接続します。

3. SymfowareConnection.Closeメソッドでコネクションを切断します。

4. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// 1. SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 2. コネクション接続

con.Open();

// メッセージ表示

Label1.Text = "接続できました";

// 3. コネクション切断

con.Close();

// 4. オブジェクトの破棄

con.Dispose();

}

// エラー処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.2 SymfowareDataReaderでの参照

SymfowareDataReaderオブジェクトを使用して、前方向スクロール読み取り専用でデータ参照するサンプルコードについて説明しま

す。

SymfowareDataReaderオブジェクトでの参照方法では、参照レコードの取り出し方向はNEXTだけでカーソル位置づけによるデータ更

新はできません。

本サンプルコードは、取得データをWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)

- 48 -

Page 54: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

3. SymfowareCommand.ExecuteReaderメソッドでSymfowareDataReaderオブジェクトを生成します。

4. SymfowareDataReaderオブジェクトよりデータを取得します。

SymfowareDataReader.Readメソッドで次の行へ位置づけます。

SymfowareDataReader.FieldCountプロパティで列数を取得します。

SymfowareDataReader.GetValueメソッドでデータを取得します。

5. SymfowareDataReader.CloseメソッドでSymfowareDataReaderオブジェクトを閉じます。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 1. コネクション接続

con.Open();

// 2. SymfowareCommandオブジェクトの生成

SymfowareCommand com = new SymfowareCommand("SELECT * FROM SAMPLE1.TESTTBL", con);

// 3. SymfowareDataReaderオブジェクトの生成

SymfowareDataReader drd = com.ExecuteReader();

// 4. データの取得

string msgstr = null;

// 行の位置づけ

while (drd.Read())

{

// 列数の取得

for (int i = 0; i < drd.FieldCount; i++)

{

// データの取得

msgstr += drd.GetValue(i) + " ";

}

msgstr += "<br>";

}

// メッセージ出力

Label1.Text = "DataReader<br>" + msgstr;

// 5. SymfowareDataReaderオブジェクトを閉じる

drd.Close();

// 6. コネクション切断

con.Close();

// 7. オブジェクトの破棄

con.Dispose();

com.Dispose();

}

// エラー処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.3 DataSetでの参照

DataSetオブジェクトを使用して、任意の方向で更新可能なデータ参照をするサンプルコードについて説明します。

カーソルとは異なり、データをVisual Studioの内部にコレクション(DataSet)として取り込んで参照します。

更新方法は、“A.2.5 CommandBuilderを利用した更新”を参照してください。

本サンプルコードでは、取得データをグリッドビューコントロールで表示します。事前にフォームへグリッドビューコントロール(GridView1)を追加してください。

- 49 -

Page 55: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

2. SymfowareDataAdapterオブジェクトを生成します。(SymfowareDataAdapterのSelectCommandのCommandTextプロパティへ問

合せ式を設定します)

3. DataSetオブジェクトを生成します。

4. SymfowareDataAdapter.FillメソッドでデータをDataSetへ取得します。

5. DataSetのデータをグリッドビューコントロールにて参照します。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 1. コネクション接続

con.Open();

// 2. SymfowareDataAdapterオブジェクトの生成

SymfowareDataAdapter adp = new SymfowareDataAdapter("SELECT * FROM SAMPLE1.TESTTBL", con);

// 3. DataSetオブジェクトの生成

DataSet dst = new DataSet();

// 4. DataSetオブジェクトへデータを取得

adp.Fill(dst, "TESTTBL");

// 5. DataSetのデータをGridViewコントロールで参照する

this.GridView1.DataSource = dst;

GridView1.DataMember = "TESTTBL";

GridView1.DataBind();

// 6. コネクション切断

con.Close();

// 7. オブジェクトの破棄

con.Dispose();

adp.Dispose();

dst.Dispose();

}

// エラー処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.4 探索条件付きSQL文での更新

探索条件付きSQL文で更新を行うサンプルコードについて説明します。

本サンプルコードは、UPDATE文実行後、影響を受けた行数をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへUPDATE文を設定します)

3. SymfowareCommand.Parameters.AddメソッドでSymfowareParameterオブジェクトの生成と設定を行います。SQL文中のパラメタ

マーカ('?')の出現順に生成してください。

SymfowareParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。

- 50 -

Page 56: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

SymfowareParameter.Valueプロパティへパラメタの値を設定します。

日時型のパラメタにはSymfowareParameter.SymfowareDbTypeプロパティを設定します。

4. SymfowareCommand.ExecuteNonQueryメソッドでUPDATE文を実行します。

ExecuteNonQueryメソッドより更新された行数が返されます。

5. コネクションを切断します。

6. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 1. コネクション接続

con.Open();

// 2. SymfowareCommandオブジェクトの生成

SymfowareCommand com = new SymfowareCommand("UPDATE SAMPLE1.TESTTBL SET DEC_C=?,DAT_C=?,CHA_C = ? WHERE KEY_C

= ?", con);

// 3. SymfowareParameterオブジェクトの生成と設定

com.Parameters.Add("DEC_C", 111111.111);

com.Parameters.Add("DAT_C", "2007/04/10");

com.Parameters["DAT_C"].SymfowareDbType = SymfowareDbType.Date;

com.Parameters.Add("CHA_C", "更新データ");

com.Parameters.Add("KEY_C", 100);

// 4. UPDATE文の実行

int i = com.ExecuteNonQuery();

// 更新行数を表示する

Label1.Text = "RowCount<br>" + i + "行更新されました";

// 5. コネクション切断

con.Close();

// 6. オブジェクトの破棄

con.Dispose();

com.Dispose();

}

// エラ-処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.5 CommandBuilderを利用した更新

CommandBuilderを利用して更新を行うサンプルコードについて説明します。

本サンプルコードは、結果列がある場合は1行目を更新し、結果列がない場合は行を挿入します。行の更新処理または行の挿入処理

を実行後、影響を受けた行数をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

2. SymfowareDataAdapterオブジェクトを生成します。(SymfowareDataAdapterのSelectCommandのCommandTextプロパティへ問

合せ式を設定します)

3. DataSetオブジェクトを生成します。

4. SymfowareDataAdapter.FillメソッドでデータをDataSetへ取得します。

5. SymfowareCommandBuilderオブジェクトの生成

- 51 -

Page 57: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

6. データを更新します。

SymfowareDataAdapter.Tables.Rows.Countメソッドを使用してDataSetに取り出した行数を取得します。

行がある場合は1行目を更新対象行としてDataRowオブジェクトへ取り出します。

行がない場合はDataSet.Tables.NewRowメソッドで新しい行を作成しDataRowオブジェクトへ取り出します。

DataRow.BeginEditメソッドで更新モードにしてデータを更新します。

DataRow.EndEditメソッドで更新を終了します。

NewRowメソッドにより作成したDataRowオブジェクトをDataSet.Tables.Rows.Addメソッドで追加します。

7. SymfowareDataAdapter.Updateメソッドで行の更新処理または行の挿入処理を実行します。

8. DataSet.AcceptChangesメソッドでDataSetに対して行った更新内容をコミットします。

9. コネクションを切断します。

10. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// 1.SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 2. SymfowareDataAdapterオブジェクトの生成

SymfowareDataAdapter adp = new SymfowareDataAdapter("SELECT * FROM SAMPLE1.TESTTBL", con);

// 3. DataSetオブジェクトの生成

DataSet dst = new DataSet();

// 4. DataSetオブジェクトへデータを取得

adp.Fill(dst, "TESTTBL");

// 5. SymfowareCommandBuilderオブジェクトの生成

SymfowareCommandBuilder builder = new SymfowareCommandBuilder(adp);

// 6. データの更新(DataSetに1行もデータがない場合は行を追加する)

DataRow myRow;

if (dst.Tables["TESTTBL"].Rows.Count != 0)

{

myRow = dst.Tables["TESTTBL"].Rows[0];

}

else

{

myRow = dst.Tables["TESTTBL"].NewRow();

}

myRow.BeginEdit();

myRow["KEY_C"] = 2;

myRow["DEC_C"] = 9999999.999;

myRow["DAT_C"] = "2007/04/10";

myRow["CHA_C"] = "TEST DATA";

myRow.EndEdit();

if (dst.Tables["TESTTBL"].Rows.Count == 0)

{

dst.Tables["TESTTBL"].Rows.Add(myRow);

}

// 7. 行の更新処理または行の挿入処理の実行

adp.Update(dst, "TESTTBL");

// 8. DataSetオブジェクトに対して行われたすべての更新をコミットする

dst.AcceptChanges();

//メッセージ表示

Label1.Text = "Normal End<br>データベースにデータが保存されました";

// 9. コネクション切断

con.Close();

// 10. オブジェクトの破棄

con.Dispose();

dst.Dispose();

adp.Dispose();

}

- 52 -

Page 58: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

// エラー処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.6 ストアドプロシジャの実行

ストアドプロシジャを実行するサンプルコードについて説明します。

本サンプルコードは、ストアドプロシジャを実行し、結果をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへCALL文を設定します)

3. CommandTextプロパティへ設定したパラメタマーカ('?')に対応するSymfowareParameterオブジェクトの生成と設定をします。

SymfowareCommand.Parameters.AddメソッドでSymfowareParameterオブジェクトを生成します。SQL文中のパラメタマーカ('?')の出現順に生成してください。

SymfowareParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。

SymfowareParameter.Directionプロパティへ入力(Input)、出力(Output)、入出力(InputOutput)を設定します。

SymfowareParameter.Valueプロパティへパラメタの値を設定します。

文字列型の出力パラメタおよび入出力パラメタのSymfowareParameter.Sizeプロパティには、 大サイズをバイト数で設定しま

す。

4. SymfowareCommand.ExecuteNonQueryメソッドでCALL文を実行します。

5. 出力パラメタの結果をメッセージでWebページ上に表示します。

SymfowareParameter.Valueプロパティで結果が参照できます。

このサンプルコードでは、出力パラメタごとに改行し、表示します。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try

{

// SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

// 1. コネクション接続

con.Open();

// 2. SymfowareCommandオブジェクトの生成

SymfowareCommand com = new SymfowareCommand("CALL SAMPLE1.COUNTPRC(?,?,?,?)", con);

// 3. SymfowareParameterオブジェクトの生成と設定

com.Parameters.Add("DAT_P", SymfowareDbType.Date);

com.Parameters["DAT_P"].Direction = ParameterDirection.Input;

com.Parameters["DAT_P"].Value = "2007/04/10";

com.Parameters.Add("OUT_P", SymfowareDbType.Int);

com.Parameters["OUT_P"].Direction = ParameterDirection.Output;

com.Parameters.Add("PRCSTATE", SymfowareDbType.Char);

com.Parameters["PRCSTATE"].Direction = ParameterDirection.Output;

com.Parameters["PRCSTATE"].Size = 5;

com.Parameters.Add("PRCMSG",SymfowareDbType.Char);

com.Parameters["PRCMSG"].Direction = ParameterDirection.Output;

com.Parameters["PRCMSG"].Size = 255;

//4. CALL文実行

com.ExecuteNonQuery();

// 5. 結果の表示

- 53 -

Page 59: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

string msgstr = "COUNT: " + com.Parameters["OUT_P"].Value + "<br>";

msgstr += "PRCSTATE: " + com.Parameters["PRCSTATE"].Value + "<br>";

msgstr += "PRCMSG: " + com.Parameters["PRCMSG"].Value;

Label1.Text = "PROCEDURE DATA<br>" + msgstr;

// 6. コネクション切断

con.Close();

// 7. オブジェクトの破棄

con.Dispose();

com.Dispose();

}

// エラー処理

catch (Exception e1)

{

// エラー処理ルーチンを記述

}

A.2.7 トランザクション制御

トランザクション制御を行うサンプルコードについて説明します。

トランザクション制御は、明示的に行うことができます。

SymfowareConnection.BeginTransactionメソッド、SymfowareTransaction.Commitメソッド、またはSymfowareTransaction.Rollbackメソッ

ドで明示的に行うことができます。これらのメソッドでトランザクションを制御していない場合は、トランザクションはSQL文を実行すること

で開始され、そのSQL文の処理完了後すぐにコミットされて終了します。

独立性水準およびアクセスモードの設定または変更は、SymfowareConnection.BeginTransactionメソッドの引数IsolationLevelと引数

AccessModeで指定します。

本サンプルコードは、独立性水準をReadCommittedに設定後、INSERT文を実行します。

アプリケーションの手順

1. コネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

2. SymfowareConnection.BeginTransactionメソッドでトランザクションを開始します。

引数IsolationLevelに独立性水準(IsolationLevel.ReadCommitted)を設定します。

SymfowareTransactionオブジェクトが作成されます。

3. 作成されたSymfowareTransactionオブジェクトを、データ操作を行うオブジェクト(SymfowareCommand)のTransactionプロパティ

に設定し、実行します。

4. データ操作が正常終了した場合、SymfowareTransaction.Commitメソッドを実行します。

データ操作が異常終了した場合、SymfowareTransaction.Rollbackメソッドを実行します。

5. コネクションを切断します。

6. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

// SymfowareConnectionオブジェクトの生成

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01");

SymfowareTransaction trn = null;

// 1. コネクション接続

con.Open();

// 2. トランザクション開始(独立性水準の設定)

trn = con.BeginTransaction(IsolationLevel.ReadCommitted);

try

{

// 3. データ操作を行う処理を記述

SymfowareCommand com = new SymfowareCommand("INSERT INTO SAMPLE1.TESTTBL VALUES(133,500.001,DATE'2007-04-10','TEST

DATA')", con);

com.Transaction = trn;

- 54 -

Page 60: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

int i = com.ExecuteNonQuery();

// 4. コミット

trn.Commit();

// 5. コネクション切断

con.Close();

// 6. オブジェクトの破棄

con.Dispose();

}

// エラー処理

catch (Exception e1)

{

// 4. ロールバック

trn.Rollback();

// エラー処理ルーチンを記述

}

A.2.8 エラー処理

エラー処理を行うサンプルコードについて説明します。

TryからCatchステートメントで、エラー発生時のエラー処理ルーチンを指定します。Symfowareのエラーが発生した場合、

SymfowareExceptionクラスをキャッチすることで、SQLSTATEやエラーメッセージなどが確認できます。SQLSTATEやエラーメッセージ

をキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。

参照

エラーメッセージの対処法は“メッセージ集”を参照してください。

Symfoware以外のエラーは、Exceptionクラスをキャッチすることでエラー情報が確認できます。Symfoware以外のエラーの対処方法

は、Microsoft社のVisual Studioのマニュアルを参照してください。

本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。発生したエラーのメッセージとSQLSTATEをWebペー

ジ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。(ConnectionStringプロパティに接続文字列を間違えて設定したとします)

2. TryステートメントからCatchステートメントの範囲内にエラーが発生する可能性のあるコードを記述します。

3. SymfowareConnection.Openメソッドでコネクションを接続します。(パスワードを間違えて指定しエラーを発生させます)

4. Catchステートメントに処理したいエラーのクラスを指定します。

5. SymfowareException.Errors.CountプロパティでSymfowareのエラー数を取得します。

6. SymfowareException.Errors.MessageプロパティでSymfowareのエラーメッセージを取得します。

7. SymfowareException.Errors.SQLStateプロパティでSQLSTATEを取得します。

8. Exception.MessageプロパティでSymfoware以外のエラーメッセージを取得します。

処理がすべて行われた後に行う処理を、finallyステートメント以降に記述します。

// 1. SymfowareConnectionオブジェクトの生成(コネクション文字列を間違えて設定)

SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=XXXXXX");

string msgstr = null;

// 2. Try ~ Catchの範囲内にエラーが発生する可能性のあるコードを記述

try

{

// 3. コネクション接続(エラー発生)

con.Open();

// データ処理を記述

- 55 -

Page 61: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

// コネクション切断

con.Close();

}

// 4. SymfowareExceptionクラスのキャッチ

catch (SymfowareException e1)

{

//5. Symfowareのエラー数を取得

for (int i = 0; i <= e1.Errors.Count - 1; i++)

{

//6. Symfowareのエラーメッセージを取得

msgstr += e1.Errors[i].Message + "<br>";

//7. SQLSTATEを取得

msgstr += "SQLSTATE: " + e1.Errors[i].SQLState + "<br>";

}

Label1.Text = "Symfoware Error Message<br>" + msgstr;

}

// 4. Exceptionクラスのキャッチ

catch (Exception e2)

{

//8. Symfoware以外のエラーメッセージを取得

msgstr = e2.Message;

Label1.Text = "Error Message<br>" + msgstr;

}

// Tryステートメント終了時の処理

finally

{

// オブジェクトの破棄

con.Dispose();

}

A.2.9 イベントハンドラによるメッセージの取得

イベントハンドラによるメッセージの取得を行うサンプルコードについて説明します。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

2. SymfowareInfoMessageEventハンドラ(conn1_InfoMessage)を追加します。

3. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

4. コネクションを切断します。

5. SymfowareInfoMessageEvent発生時の処理(conn1_InfoMessage)としてメッセージの取得を行います。

エラー処理については、“A.2.8 エラー処理”を参照してください。

static void ChangeUserPassword(string password)

{

//1. SymfowareConnectionオブジェクトの生成

string connString = "DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01";

SymfowareConnection conn1 = new SymfowareConnection(connString);

try

{

//2. SymfowareInfoMessageEventハンドラの追加

conn1.InfoMessage += new SymfowareInfoMessageEventHandler(conn1_InfoMessage);

//3. コネクション接続

conn1.Open();

// パスワードの変更

conn1.SetUserPassword(password);

- 56 -

Page 62: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

//4. コネクション切断

conn1.Close();

}

catch (Exception ex1)

{

// エラー処理ルーチンを記述

Console.WriteLine(ex1.Message);

}

finally

{

if ((conn1 != null) && (conn1.State == ConnectionState.Open))

{

conn1.Close();

}

}

}

//5. SymfowareInfoMessageEvent発生時の処理

public static void conn1_InfoMessage(object obj, SymfowareInfoMessageEventArgs args)

{

//メッセージの取得

string serverInfo = args.Message;

//メッセージの出力

Console.WriteLine(serverInfo);

}

A.3 Visual Basic .NETのサンプル

Visual Basic .NETのサンプルコードおよび留意事項について説明します。

A.3.1 接続および切断

接続および切断をするサンプルコードについて説明します。

本サンプルコードは、取得データをWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

ConnectionStringプロパティへ接続文字列を設定します。

2. SymfowareConnection.Openメソッドでコネクションを接続します。

3. SymfowareConnection.Closeメソッドでコネクションを切断します。

4. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

'1.SymfowareConnectionオブジェクトの生成

Dim con As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'2.コネクション接続

con.Open()

'メッセージ表示

Label1.Text = "接続できました"

'3.コネクション切断

con.Close()

'4.オブジェクトの破棄

con.Dispose()

Catch exception1 As Exception

- 57 -

Page 63: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

'エラー処理ルーチンを記述

End Try

A.3.2 SymfowareDataReaderでの参照

SymfowareDataReaderオブジェクトを使用して、前方向スクロール読み取り専用でデータ参照するサンプルコードについて説明しま

す。

SymfowareDataReaderオブジェクトでの参照方法では、参照レコードの取り出し方向はNEXTだけでカーソル位置づけによるデータ更

新はできません。

本サンプルコードは、取得データをWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)

3. SymfowareCommand.ExecuteReaderメソッドでSymfowareDataReaderオブジェクトを生成します。

4. SymfowareDataReaderオブジェクトよりデータを取得します。

SymfowareDataReader.Readメソッドで次の行へ位置づけます。

SymfowareDataReader.FieldCountプロパティで列数を取得します。

SymfowareDataReader.GetValueメソッドでデータを取得します。

5. SymfowareDataReader.CloseメソッドでSymfowareDataReaderオブジェクトを閉じます。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

'SymfowareConnectionオブジェクトの生成

Dim con As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'1.コネクション接続

con.Open()

'2.SymfowareCommandオブジェクトの生成

Dim command1 As New SymfowareCommand("SELECT * FROM SAMPLE1.TESTTBL", con)

'3.SymfowareDataReaderオブジェクトの生成

Dim reader1 As SymfowareDataReader = command1.ExecuteReader

'4.データの取得

Dim text1 As String = Nothing

'行の位置づけ

Do While reader1.Read

Dim num1 As Integer = 0

'列数の取得

Do While (num1 < reader1.FieldCount)

'データの取得

text1 = text1 & reader1.GetValue(num1) & " "

num1 += 1

Loop

text1 = text1 & "<br>"

Loop

'メッセージ出力

Label1.Text = "DataReader<br>" & text1

'5.SymfowareDataReaderオブジェクトを閉じる

reader1.Close()

'6.コネクション切断

con.Close()

'7.オブジェクトの破棄

con.Dispose()

- 58 -

Page 64: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

command1.Dispose()

'エラー処理

Catch exception1 As Exception

'エラー処理ルーチンを記述

End Try

A.3.3 DataSetでの参照

DataSetオブジェクトを使用して、任意の方向で更新可能なデータ参照をするサンプルコードについて説明します。

カーソルとは異なり、データをVisual Studioの内部にコレクション(DataSet)として取り込んで参照します。

更新方法は、“A.3.5 CommandBuilderを利用した更新”を参照してください。

本サンプルコードでは、取得データをグリッドビューコントロールで表示します。事前にフォームへグリッドビューコントロール(GridView1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

2. SymfowareDataAdapterオブジェクトを生成します。(SymfowareDataAdapterのSelectCommandのCommandTextプロパティへ問

合せ式を設定します)

3. DataSetオブジェクトを生成します。

4. SymfowareDataAdapter.FillメソッドでデータをDataSetへ取得します。

5. DataSetのデータをグリッドビューコントロールにて参照します。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

'SymfowareConnectionオブジェクトの生成

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'1.コネクション接続

connection1.Open()

'2.SymfowareDataAdapterオブジェクトの生成

Dim adapter1 As New SymfowareDataAdapter("SELECT * FROM SAMPLE1.TESTTBL", connection1)

'3.DataSetオブジェクトの生成

Dim set1 As New DataSet

'4.DataSetオブジェクトへデータを取得

adapter1.Fill(set1, "TESTTBL")

'5.DataSetのデータをGridViewコントロールで参照する

Me.GridView1.DataSource = set1

Me.GridView1.DataMember = "TESTTBL"

Me.GridView1.DataBind()

'6.コネクション切断

connection1.Close()

'7.オブジェクトの破棄

connection1.Dispose()

adapter1.Dispose()

set1.Dispose()

'エラー処理

Catch exception1 As Exception

'エラー処理ルーチンを記述

End Try

- 59 -

Page 65: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

A.3.4 探索条件付きSQL文での更新

探索条件付きSQL文で更新を行うサンプルコードについて説明します。

本サンプルコードは、UPDATE文実行後、影響を受けた行数をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへUPDATE文を設定します)

3. SymfowareCommand.Parameters.AddメソッドでSymfowareParameterオブジェクトの生成と設定を行います。SQL文中のパラメタ

マーカ('?')の出現順に生成してください。

SymfowareParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。

SymfowareParameter.Valueプロパティへパラメタの値を設定します。

日時型のパラメタにはSymfowareParameter.SymfowareDbTypeプロパティを設定します。

4. SymfowareCommand.ExecuteNonQueryメソッドでUPDATE文を実行します。

ExecuteNonQueryメソッドより更新された行数が返されます。

5. コネクションを切断します。

6. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

'SymfowareConnectionオブジェクトの生成

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'1.コネクション接続

connection1.Open()

'2.SymfowareCommandオブジェクトの生成

Dim command1 As New SymfowareCommand("UPDATE SAMPLE1.TESTTBL SET DEC_C=?,DAT_C=?,CHA_C = ? WHERE KEY_C = ?",

connection1)

'3.SymfowareParameterオブジェクトの生成と設定

command1.Parameters.Add("DEC_C", 111111.111)

command1.Parameters.Add("DAT_C", "2007/04/10")

command1.Parameters.Item("DAT_C").SymfowareDbType = SymfowareDbType.Date

command1.Parameters.Add("CHA_C", "更新データ")

command1.Parameters.Add("KEY_C", 100)

'4.UPDATE文の実行

Dim num1 As Integer = command1.ExecuteNonQuery

'更新行数を表示する

Me.Label1.Text = "RowCount<br>" + num1.ToString + "行更新されました"

'5.コネクション切断

connection1.Close()

'6.オブジェクトの破棄

connection1.Dispose()

command1.Dispose()

'エラー処理

Catch exception1 As Exception

'エラー処理ルーチンを記述

End Try

A.3.5 CommandBuilderを利用した更新

CommandBuilderを利用して更新を行うサンプルコードについて説明します。

本サンプルコードは、結果列がある場合は1行目を更新し、結果列がない場合は行を挿入します。行の更新処理または行の挿入処理

を実行後、影響を受けた行数をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

- 60 -

Page 66: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

2. SymfowareDataAdapterオブジェクトを生成します。(SymfowareDataAdapterのSelectCommandのCommandTextプロパティへ問

合せ式を設定します)

3. DataSetオブジェクトを生成します。

4. SymfowareDataAdapter.FillメソッドでデータをDataSetへ取得します。

5. SymfowareCommandBuilderオブジェクトの生成

6. データを更新します。

SymfowareDataAdapter.Tables.Rows.Countメソッドを使用してDataSetに取り出した行数を取得します。

行がある場合は1行目を更新対象行としてDataRowオブジェクトへ取り出します。

行がない場合はDataSet.Tables.NewRowメソッドで新しい行を作成しDataRowオブジェクトへ取り出します。

DataRow.BeginEditメソッドで更新モードにしてデータを更新します。

DataRow.EndEditメソッドで更新を終了します。

NewRowメソッドにより作成したDataRowオブジェクトをDataSet.Tables.Rows.Addメソッドで追加します。

7. SymfowareDataAdapter.Updateメソッドで行の更新処理または行の挿入処理を実行します。

8. DataSet.AcceptChangesメソッドでDataSetに対して行った更新内容をコミットします。

9. コネクションを切断します。

10. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

Dim row1 As DataRow

'1.SymfowareConnectionオブジェクトの生成

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'2.SymfowareDataAdapterオブジェクトの生成

Dim adapter1 As New SymfowareDataAdapter("SELECT * FROM SAMPLE1.TESTTBL", connection1)

'3.DataSetオブジェクトの生成

Dim set1 As New DataSet

'4.DataSet オブジェクトへデータを取得

adapter1.Fill(set1, "TESTTBL")

'5.SymfowareCommandBuilderオブジェクトの生成

Dim builder1 As New SymfowareCommandBuilder(adapter1)

'6.データの更新(DataSetに1行もデータがない場合は行を追加する)

If (set1.Tables.Item("TESTTBL").Rows.Count <> 0) Then

row1 = set1.Tables.Item("TESTTBL").Rows.Item(0)

Else

row1 = set1.Tables.Item("TESTTBL").NewRow

End If

row1.BeginEdit()

row1.Item("KEY_C") = 2

row1.Item("DEC_C") = 9999999.999

row1.Item("DAT_C") = "2007/04/10"

row1.Item("CHA_C") = "TEST DATA"

row1.EndEdit()

If (set1.Tables.Item("TESTTBL").Rows.Count = 0) Then

set1.Tables.Item("TESTTBL").Rows.Add(row1)

End If

'7.行の更新処理または行の挿入処理の実行

adapter1.Update(set1, "TESTTBL")

'8.DataSet オブジェクトに対して行われたすべての更新をコミットする

set1.AcceptChanges()

'メッセージ表示

Me.Label1.Text = "Normal End<br>データベースにデータが保存されました"

'9.コネクション切断

- 61 -

Page 67: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

connection1.Close()

'10.オブジェクトの破棄

connection1.Dispose()

set1.Dispose()

adapter1.Dispose()

'エラー処理

Catch exception1 As Exception

'エラー処理ルーチンを記述

End Try

A.3.6 ストアドプロシジャの実行

ストアドプロシジャを実行するサンプルコードについて説明します。

本サンプルコードは、ストアドプロシジャを実行し、結果をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへCALL文を設定します)

3. CommandTextプロパティへ設定したパラメタマーカ('?')に対応するSymfowareParameterオブジェクトの生成と設定をします。

SymfowareCommand.Parameters.AddメソッドでSymfowareParameterオブジェクトを生成します。SQL文中のパラメタマーカ('?')の出現順に生成してください。

SymfowareParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。

SymfowareParameter.Directionプロパティへ入力(Input)、出力(Output)、入出力(InputOutput)を設定します。

SymfowareParameter.Valueプロパティへパラメタの値を設定します。

文字列型の出力パラメタおよび入出力パラメタのSymfowareParameter.Sizeプロパティには、 大サイズをバイト数で設定しま

す。

4. SymfowareCommand.ExecuteNonQueryメソッドでCALL文を実行します。

5. 出力パラメタの結果をメッセージでWebページ上に表示します。

SymfowareParameter.Valueプロパティで結果が参照できます。

このサンプルコードでは、出力パラメタごとに改行し、表示します。

6. コネクションを切断します。

7. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Try

'SymfowareConnectionオブジェクトの生成

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

'1.コネクション接続

connection1.Open()

'2.SymfowareCommandオブジェクトの生成

Dim command1 As New SymfowareCommand("CALL SAMPLE1.COUNTPRC(?,?,?,?)", connection1)

'3.SymfowareParameterオブジェクトの生成と設定

command1.Parameters.Add("DAT_P", SymfowareDbType.Date)

command1.Parameters.Item("DAT_P").Direction = ParameterDirection.Input

command1.Parameters.Item("DAT_P").Value = "2007/04/10"

command1.Parameters.Add("OUT_P", SymfowareDbType.Int)

command1.Parameters.Item("OUT_P").Direction = ParameterDirection.Output

command1.Parameters.Add("PRCSTATE", SymfowareDbType.Char)

command1.Parameters.Item("PRCSTATE").Direction = ParameterDirection.Output

command1.Parameters.Item("PRCSTATE").Size = 5

command1.Parameters.Add("PRCMSG", SymfowareDbType.Char)

command1.Parameters.Item("PRCMSG").Direction = ParameterDirection.Output

command1.Parameters.Item("PRCMSG").Size = 255

- 62 -

Page 68: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

'4.CALL文実行

command1.ExecuteNonQuery()

'5.結果の表示

Dim text1 As String = ("COUNT: " & command1.Parameters.Item("OUT_P").Value & "<br>")

Dim obj1 As Object = text1

text1 = String.Concat(New Object() {obj1, "PRCSTATE: ", command1.Parameters.Item("PRCSTATE").Value, "<br>"})

text1 = (text1 & "PRCMSG: " & command1.Parameters.Item("PRCMSG").Value)

Me.Label1.Text = ("PROCEDURE DATA<br>" & text1)

'6.コネクション切断

connection1.Close()

'7.オブジェクトの破棄

connection1.Dispose()

command1.Dispose()

'エラー処理

Catch exception1 As Exception

'エラー処理ルーチンを記述

End Try

A.3.7 トランザクション制御

トランザクション制御を行うサンプルコードについて説明します。

トランザクション制御は、明示的に行うことができます。

SymfowareConnection.BeginTransactionメソッド、SymfowareTransaction.Commitメソッド、またはSymfowareTransaction.Rollbackメソッ

ドで明示的に行うことができます。これらのメソッドでトランザクションを制御していない場合は、トランザクションはSQL文を実行すること

で開始され、そのSQL文の処理完了後すぐにコミットされて終了します。

独立性水準およびアクセスモードの設定または変更は、SymfowareConnection.BeginTransactionメソッドの引数IsolationLevelと引数

AccessModeで指定します。

本サンプルコードは、独立性水準をReadCommittedに設定後、INSERT文を実行します。

アプリケーションの手順

1. コネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

2. SymfowareConnection.BeginTransactionメソッドでトランザクションを開始します。

引数IsolationLevelに独立性水準(IsolationLevel.ReadCommitted)を設定します。

SymfowareTransactionオブジェクトが作成されます。

3. 作成されたSymfowareTransactionオブジェクトを、データ操作を行うオブジェクト(SymfowareCommand)のTransactionプロパティ

に設定し、実行します。

4. データ操作が正常終了した場合、SymfowareTransaction.Commitメソッドを実行します。

データ操作が異常終了した場合、SymfowareTransaction.Rollbackメソッドを実行します。

5. コネクションを切断します。

6. オブジェクトを破棄します。

エラー処理については、“A.3.8 エラー処理”を参照してください。

'SymfowareConnectionオブジェクトの生成

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=PASS01")

Dim transaction1 As SymfowareTransaction = Nothing

'1.コネクション接続

connection1.Open()

'2.トランザクション開始(独立性水準の設定)

transaction1 = connection1.BeginTransaction(IsolationLevel.ReadCommitted)

Try

'3.データ操作を行う処理を記述

Dim command1 As New SymfowareCommand("INSERT INTO SAMPLE1.TESTTBL VALUES(133,500.001,DATE'2007-04-10','TEST DATA')",

connection1)

- 63 -

Page 69: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

command1.Transaction = transaction1

Dim num1 As Integer = command1.ExecuteNonQuery()

'4.コミット

transaction1.Commit()

'5.コネクション切断

connection1.Close()

'6.オブジェクトの破棄

connection1.Dispose()

'エラー処理

Catch exception1 As Exception

'4.ロールバック

transaction1.Rollback()

'エラー処理ルーチンを記述

End Try

A.3.8 エラー処理

エラー処理を行うサンプルコードについて説明します。

TryからCatchステートメントで、エラー発生時のエラー処理ルーチンを指定します。Symfowareのエラーが発生した場合、

SymfowareExceptionクラスをキャッチすることで、SQLSTATEやエラーメッセージなどが確認できます。SQLSTATEやエラーメッセージ

をキーにしてエラー処理を切り分け、その後の振る舞いを決めることが可能です。

参照

エラーメッセージの対処法は“メッセージ集”を参照してください。

Symfoware以外のエラーは、Exceptionクラスをキャッチすることでエラー情報が確認できます。Symfoware以外のエラーの対処方法

は、Microsoft社のVisual Studioのマニュアルを参照してください。

本サンプルコードでは、接続文字列を間違えて入力しエラーを発生させます。発生したエラーのメッセージとSQLSTATEをWebペー

ジ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。(ConnectionStringプロパティに接続文字列を間違えて設定したとします)

2. TryステートメントからCatchステートメントの範囲内にエラーが発生する可能性のあるコードを記述します。

3. SymfowareConnection.Openメソッドでコネクションを接続します。(パスワードを間違えて指定しエラーを発生させます)

4. Catchステートメントに処理したいエラーのクラスを指定します。

5. SymfowareException.Errors.CountプロパティでSymfowareのエラー数を取得します。

6. SymfowareException.Errors.MessageプロパティでSymfowareのエラーメッセージを取得します。

7. SymfowareException.Errors.SQLStateプロパティでSQLSTATEを取得します。

8. Exception.MessageプロパティでSymfoware以外のエラーメッセージを取得します。

処理がすべて行われた後に行う処理を、Finallyステートメント以降に記述します。

'1.SymfowareConnectionオブジェクトの生成(コネクション文字列を間違えて設定)

Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER

ID=USER01;PASSWORD=XXXXXX")

Dim text1 As String = Nothing

'2.Try ~ Catchの範囲内にエラーが発生する可能性のあるコードを記述

Try

'3.コネクション接続(エラー発生)

connection1.Open()

'データ処理を記述

'コネクション切断

connection1.Close()

- 64 -

Page 70: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

'4.SymfowareExceptionクラスのキャッチ

Catch exception1 As SymfowareException

Dim num1 As Integer = 0

'5.Symfowareのエラー数を取得

Do While (num1 <= (exception1.Errors.Count - 1))

'6.Symfowareのエラーメッセージを取得

text1 = (text1 & exception1.Errors.Item(num1).Message & "<br>")

'7.SQLSTATEを取得

text1 = (text1 & "SQLSTATE: " & exception1.Errors.Item(num1).SQLState & "<br>")

num1 += 1

Loop

Me.Label1.Text = ("Symfoware Error Message<br>" & text1)

'4.Exceptionクラスのキャッチ

Catch exception2 As Exception

'8.Symfoware以外のエラーメッセージを取得

text1 = exception2.Message

Me.Label1.Text = ("Error Message<br>" & text1)

'Tryステートメント終了時の処理

Finally

'オブジェクトの破棄

connection1.Dispose()

End Try

A.3.9 イベントハンドラによるメッセージの取得

イベントハンドラによるメッセージの取得を行うサンプルコードについて説明します。

アプリケーションの手順

1. SymfowareConnectionオブジェクトを生成します。

2. SymfowareInfoMessageEventハンドラ(conn1_InfoMessage)を追加します。

3. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。

4. コネクションを切断します。

5. SymfowareInfoMessageEvent発生時の処理(conn1_InfoMessage)としてメッセージの取得を行います。

エラー処理については、“A.3.8 エラー処理”を参照してください。

Public Sub ChangeUserPassword(ByVal password As String)

'1. SymfowareConnectionオブジェクトの生成

Dim connString As String = "DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01"

Dim conn1 As New SymfowareConnection(connString)

Try

'2. SymfowareInfoMessageEventハンドラの追加

AddHandler conn1.InfoMessage, AddressOf conn1_InfoMessage

'3.コネクション接続

conn1.Open()

'パスワードの変更

conn1.SetUserPassword(password)

'4.コネクション切断

conn1.Close()

Catch exception1 As SymfowareException

'エラー処理ルーチンを記述

Catch exception2 As Exception

'エラー処理ルーチンを記述

Finally

If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then

conn1.Close()

End If

End Try

End Sub

- 65 -

Page 71: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

'5. SymfowareInfoMessageEvent発生時の処理

Public Sub conn1_InfoMessage(ByVal obj As Object, ByVal args As SymfowareInfoMessageEventArgs)

'メッセージの取得

Dim serverInfo As String = args.Message

'メッセージの出力

Console.WriteLine(serverInfo)

End Sub

- 66 -

Page 72: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

付録B ConnectionStringプロパティのキーワード

ConnectionStringプロパティに指定可能なキーワードを説明します。

キーワード 既定値 説明

Data Sourceまたは

Hostまたは

Serverまたは

Addressまたは

Addrまたは

Network Address

なし 接続するサーバのホスト名またはIPアドレスを指定します。

ホスト名を指定する場合、63バイト以内で指定してください。

ホスト名、またはIPアドレスは、必ず指定してください。

Port 26551 RDB2_TCP連携で使用するポート番号を指定します。

User IDまたは

Userまたは

UID

なし データベースに接続するユーザIDを指定します。

ユーザIDは、必ず指定してください。

Passwordまたは

Pwd

なし データベースに接続するユーザIDのパスワードを指定します。

パスワードは必ず指定してください。

Initial Catalogまたは

Database

なし 接続するデータベース名を指定します。

schema なし アプリケーションで使用するSQL文のデフォルトスキーマ名を指定します。

eventlog OFF(取得

しない)EventLogの取得の有無やログの取得レベルを指定します。詳細は、“B.1 eventlogキーワード”を参照してください。

connect timeoutまたは

connection timeout

15 サーバへの接続を待機する時間を指定します。指定した待機時間を過ぎると、接

続を切断し、エラーを返します。

待機時間の単位は秒です。

0を指定した場合、待機時間に無制限が指定されます。接続が永続的に待機する

ことになるので、0は指定しないようにしてください。

connectionlifetime 0( 大値) コネクションのプールでの保持時間を指定します。保持時間を超えたコネクション

は解放されます。

0~2147483647の範囲で指定します。保持時間の単位は秒です。

0を指定した場合、保持時間に 大値が指定されます。

pooling true コネクションをプーリングするかどうかを指定します。

・ trueが指定された場合、コネクションをプーリングします。

・ falseが指定された場合、コネクションをプーリングしません。

Max Pool Sizeまたは

maxpooledconnections

100 データベースごとに、再利用可能なコネクション数の上限を指定します。

0~32767の範囲で指定することができます。

0を指定した場合、コネクションは再利用されずに切断されます。

1以上を指定した場合、SymfowareConnectionクラスのcloseメソッドを実行しても、

データベースとの接続は切断されません。コネクションは再利用可能な状態になり

ます。

- 67 -

Page 73: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

キーワード 既定値 説明

ただし、Max Pool Sizeパラメタの指定値を超えるコネクションは、切断されます。

また、32768以上が指定された場合、32767が指定されたとみなします。

注意

・ Min Pool Sizeに指定された値よりも小さい値は指定できません。

Min Pool Sizeまたは

minpooledconnections

0 データベースごとに、プールで再利用可能なコネクション数の下限を指定しま

す。

0~32767の範囲で指定することができます。

0を指定した場合、コネクションは再利用されずに切断されます。

1以上を指定した場合、SymfowareConnectionクラスのcloseメソッドを実行しても、

データベースとの接続は切断されません。コネクションは再利用可能な状態になり

ます。

ただし、32768以上が指定された場合は、32767が指定されたとみなします。

注意

・ Max Pool Sizeに指定された値よりも大きい値は指定できません。

tuneparam なし Symfoware Serverのクライアント用の動作環境ファイルの実行パラメタを指定しま

す。指定可能な実行パラメタ、および指定形式の詳細は、“B.2 tuneparamキーワー

ド”を参照してください。

B.1 eventlogキーワード

eventlogキーワードには、以下のオプションを指定することができます。

・ EventLogの取得の有無

・ EventLogの取得レベル

・ 取得したログの出力先

eventlogキーワードの指定形式とオプションの詳細を説明します。

指定形式

eventlog=(出力モード[,出力レベル][,ログの出力先])

記述例

出力レベルが“Debug”で、ログの出力先が“C:\log”の場合

eventlog=(ON,Debug,C:\log)

オプション

eventlogキーワードのオプションの詳細を以下に示します。

表B.1 eventlogキーワードの詳細

オプション 既定値 説明

出力モード なし ログの取得の有無を指定します。

ON:ログを取得します。

OFF:ログを取得しません。

出力レベル Error ログの出力レベルを指定します。

Error:APIの開始時刻と終了時刻、開始から終了までの経過時間、およびエ

ラーメッセージを取得します。

Debug:“Error”の情報に加えて、実行するクラス名や入力パラメタ名などの性

能情報を取得します。

- 68 -

Page 74: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

オプション 既定値 説明

出力レベルの詳細は、“表B.2 出力情報と出力レベルの対応関係”を参照し

てください。

ログの出力先 Symfoware .NETData Providerイン

ストールディレクトリ

\Log

ログの出力先フォルダのパスを指定します。絶対パスで指定してください。

注意

・ 出力先には、実在するフォルダを指定してください。指定した出力先フォ

ルダが存在しない場合、エラーになります。

出力レベルごとの出力情報は以下のとおりです。

表B.2 出力情報と出力レベルの対応関係

出力情報 出力レベル

Error Debug

開始時刻 ○(注) ○

クラス名 - ○

メソッド名 - ○

入力パラメタ名 - ○

各クラスのプロパティ情報 - ○

戻り値 - ○

エラーメッセージ ○ ○

終了時刻(経過時間) ○(注) ○

○:出力あり

- :出力なし

注) エラーメッセージが出力された場合のみ、取得します。

以下に、出力情報の出力形式を示します。

表B.3 出力情報の詳細

出力情報 出力形式

開始時刻 Begin: YYYY-MM-DD HH:MM:SS.MMS

クラス名 Class: クラス名

メソッド名 Method: メソッド名

入力パラメタ名 Input Variables:パラメタ名: 値 (注1)

各クラスのプロパティ情報 各クラスに指定されているプロパティ情報、およびキーワード情報を以下の形式で出

力します。実行するSQL文はプロパティ情報として出力します。

クラス名 Environment:プロパティ名 = プロパティの値

キーワード名 = キーワードの値 (注2)

戻り値 Return: 戻り値 (注3)

エラーメッセージ Error: エラーメッセージ

終了時刻(経過時間) End: YYYY-MM-DD HH:MM:SS.MMS (HH:MM:SS.sss)

注1) パラメタがない場合は、“void”を出力します。

注2) ConnectionStringプロパティの接続先情報のユーザIDとパスワードは、*(アスタリスク)で出力します。

- 69 -

Page 75: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

注3) 戻り値がオブジェクトの場合、オブジェクトのクラス名を返します。また、戻り値がない場合は、“void”を出力します。エラーが発生

した場合、戻り値は出力されません。

B.2 tuneparamキーワード

tuneparamキーワードには、Symfoware Serverのクライアント用の動作環境ファイルの実行パラメタを指定することができます。

tuneparamキーワードへの実行パラメタの指定形式と、使用可能な実行パラメタ一覧を説明します。

指定形式

tuneparam='<param>' <param>...tuneparamキーワードに指定する実行パラメタ

記述例

MAX_SQLとWAIT_TIMEを指定した場合

tuneparam='MAX_SQL=(255);WAIT_TIME=(30)'

注意

tuneparamキーワードに複数の実行パラメタを指定する場合、値を“;”(セミコロン)で区切って設定します。

実行パラメタ

Symfoware .NET Data Providerを利用するアプリケーションから指定可能な実行パラメタは以下のとおりです。

表B.4 tuneparamキーワードで使用可能な実行パラメタ一覧

分類 実行パラメタ 概要

通信 SERVER_ENV_FILE 使用するサーバ用の動作環境ファイル

TRAN_SPEC SQLエラー発生時のトランザクション

TRAN_TIME_LIMIT 1つのトランザクションの 大使用可能時間

WAIT_TIME 通信時の待ち時間

作業領域な

MAX_SQL 同時に操作できるオブジェクトの数

OPL_BUFFER_SIZE SQL文の実行手順を格納しておくバッファのサイズ

SORT_MEM_SIZE 作業用ソート領域として使うメモリサイズ

WORK_ALLOC_SPACESIZE 作業用ソート領域および作業用テーブルとして使うファイルサイズ

WORK_MEM_SIZE 作業用テーブルとして使うメモリのサイズ

WORK_PATH 作業用テーブルおよび作業用ソート領域のパス

データ処理 CAL_ERROR 代入処理でオーバフローが起きた場合の処理

表・インデッ

クス

DEFAULT_DSI_TYPE 格納構造定義を簡略化した表を定義する場合、Symfoware/RDBが自動的に

生成する表のDSOの格納構造の選択

DEFAULT_INDEX_SIZE 格納構造定義を簡略化したインデックスを定義する場合のインデックスのデー

タ格納域の初期量、拡張量、ページ長など

DEFAULT_OBJECT_TABLE_SIZE

格納構造定義を簡略化した表を定義する場合のOBJECT構造の表のデータ

格納域の初期量、拡張量、ページ長など

DEFAULT_TABLE_SIZE 格納構造定義を簡略化した表を定義する場合の表のデータ格納域の初期

量、拡張量、ページ長など

DSI_EXPAND_POINT DSIの容量拡張を起動するか否か

- 70 -

Page 76: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

分類 実行パラメタ 概要

INCLUSION_DSI アプリケーションで使用するDSIを限定する

TEMPORARY_INDEX_SIZE 一時表にインデックスを定義する場合のインデックスのデータ格納域の初期

量、拡張量など

TEMPORARY_TABLE_SIZE 一時表を定義する場合の表のデータ格納域の初期量、拡張量など

アクセスプラ

ACCESS_PLAN アプリケーション単位でアクセスプランを取得するか否かおよびSQL文に対す

るアドバイスを出力するか否か

性能情報 IGNORE_INDEX インデックスを使用しないアクセスプランを選択するか否か

INACTIVE_INDEX_SCAN 非活性状態のインデックスDSIを含むインデックスを使用したアクセスプランを

選択するか否か

JOIN_RULE ジョインする方法

JOIN_ORDER 結合表と他の表のジョイン順

SCAN_KEY_ARITHMETIC_RANGE

四則演算の検索範囲について、インデックスの範囲検索、または、クラスタ

キー検索を行うか否か

SCAN_KEY_CAST 探索条件のCASTオペランドに指定した列でインデックスの範囲検索、また

は、クラスタキー検索を行うか否か

SORT_HASHAREA_SIZE ソート処理がレコードをハッシングして格納するための領域サイズ

SQL_TRACE アプリケーション単位でSQL性能情報を取得するか否か

SS_RATE 述語ごとの検索範囲の選択率の値

TID_SORT インデックス検索と表データ取得のアクセスモデルでTIDソートを利用するか

否か

TID_UNION TIDユニオンマージのアクセスモデルを有効にするか否か

USQL_LOCK UPDATE文:探索またはDELETE文:探索の更新標的レコードを位置づける部

分の占有モード

排他 ISOLATION_WAIT 占有待ちの方式

R_LOCK 占有の単位を行とする

トランザクショ

DEFAULT_ACCESS_MODE トランザクションアクセスモードの初期値を指定する

DEFAULT_ISOLATION 独立性水準の初期値を指定する

デバッグ ROUTINE_SNAP ストアドプロシジャのルーチンのトレースを出力するか否か

メッセージ MSG_LANG 表示するメッセージの言語種を設定する

リカバリ RCV_MODE アプリケーションのリカバリ水準を指定する

予約語と

SQL機能

SQL_LEVEL アプリケーションの予約語とSQL機能のレベルを設定する

並列クエリ MAX_PARALLEL データベースを並列に検索する場合の多重度

PARALLEL_SCAN アプリケーション単位またはコネクション単位にデータベースを並列に検索す

るか否か

その他 ARC_FULL アーカイブログ満杯時にエラー復帰するか否か

ACCESS_PLAN

【指定形式】

ACCESS_PLAN = ({ON | OFF},ファイル名[,[出力レベル][,[SQLアドバイザ出力レベル]]])

【実行パラメタの意味】

アプリケーション単位でアクセスプランを取得するかどうかを指定します。省略した場合は、“OFF”が指定されたものとみなしま

す。

- 71 -

Page 77: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

【パラメタの意味】

ON:

アクセスプラン取得機能を利用する場合に指定します。

OFF:

アクセスプラン取得機能を利用しない場合に指定します。

ファイル名:

出力先のサーバ側のファイル名を、絶対パスで指定します。指定されたファイルがすでに存在する場合は、情報を追加して

出力します。

また、指定するパスが存在することと、指定したユーザIDに対する書込み権があることを確認してください。

出力レベル:

出力レベルには1または2を指定します。1を指定すると、アクセスプランのセクション情報のみを出力します。2を指定すると、

セクション内の各エレメント詳細情報も出力します。省略した場合は、2が指定されたものとみなします。

SQLアドバイザ出力レベル:

SQLアドバイザ出力レベルには、“ADVICE”または“NOADVICE”を指定します。“ADVICE”を指定すると、SQL文に対す

るアドバイスを出力します。“NOADVICE”を指定すると、SQL文に対するアドバイスを出力しません。省略した場合

は、“NOADVICE”が指定されたものとみなします。

DEFAULT_ACCESS_MODE

【指定形式】

DEFAULT_ACCESS_MODE = ({READ_ONLY | READ_WRITE})

【実行パラメタの意味】

トランザクションアクセスモードの初期値を指定します。省略した場合は、READ_WRITEが指定されたとみなします。

【パラメタの意味】

READ_ONLY:

トランザクションアクセスモードの初期値をREAD ONLYとします。

READ_WRITE:

トランザクションアクセスモードの初期値をREAD WRITEとします。

DEFAULT_ISOLATION

【指定形式】

DEFAULT_ISOLATION = ({DEFAULT | READ_UNCOMMITTED | READ_COMMITTED | REPEATABLE_READ |SERIALIZABLE})

【実行パラメタの意味】

独立性水準の初期値を指定します。省略した場合は、DEFAULTが指定されたとみなします。

【パラメタの意味】

DEFAULT:

独立性水準の初期値をシステムの初期値とします。

READ_UNCOMMITTED:

独立性水準の初期値をREAD UNCOMMITTEDとします。

READ_COMMITTED:

独立性水準の初期値をREAD COMMITTEDとします。

REPEATABLE_READ:

独立性水準の初期値をREPEATABLE READとします。

- 72 -

Page 78: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

SERIALIZABLE:

独立性水準の初期値をSERIALIZABLEとします。

注意

- システム用の動作環境ファイルまたは tuneparamキーワードのR_LOCKがNOの場合、DEFAULT_ISOLATIONに

REPEATABLE_READを指定しても、独立性水準はSERIALIZABLEになります。

- システム用の動作環境ファイルまたは tuneparamキーワードのR_LOCKがYESの場合、DEFAULT_ISOLATIONに

SERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。

R_LOCK

【指定形式】

R_LOCK = ({YES | NO})

【実行パラメタの意味】

占有の単位を行とするかどうかを指定します。省略した場合は、システム用の動作環境ファイルにおけるR_LOCKの指定に従

います。

【パラメタの意味】

YES:

占有の単位を行とします。このパラメタを指定した場合、サーバ用の動作環境ファイルのDSO_LOCKは指定できません。

NO:

占有の単位は、DSO_LOCKの指定に従います。このパラメタを指定し、かつDSO_LOCKが指定されていない場合は、

Symfoware Serverによって自動的に占有の単位が選択されます。

注意

- システム用の動作環境ファイルまたは tuneparamキーワードのR_LOCKがNOの場合、 tuneparamキーワードの

DEFAULT_ISOLATIONにREPEATABLE_READを指定する、またはSymfowareConnectionクラスのBeginTransactionメソッド

のIsolationLevelに“RepeatableRead”を指定しても、独立性水準はSERIALIZABLEになります。

- システム用の動作環境ファイルまたは tuneparamキーワードのR_LOCKがYESの場合、 tuneparamキーワードの

DEFAULT_ISOLATIONにSERIALIZABLEを指定する、またはSymfowareConnectionクラスのBeginTransactionメソッドの

IsolationLevelに“Serializable”を指定しても、独立性水準はREPEATABLE READになります。

SERVER_ENV_FILE

【指定形式】

SERVER_ENV_FILE = (SQLサーバ名,ファイル名)

【実行パラメタの意味】

使用するサーバ用の動作環境ファイル名を指定します。コネクションごとにサーバのアプリケーション実行環境を変更する場合

に指定します。

【パラメタの意味】

SQLサーバ名:

接続するデータベース名を記述します。

ファイル名:

サーバ用の動作環境ファイル名を、絶対パスで指定します。

- 73 -

Page 79: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

注意

サーバ用の動作環境ファイルにDSO_LOCKを指定した場合、 初のSQL文実行時 (SymfowareCommandオブジェクトの

ExecuteNonQuery、ExecuteReaderまたはExecuteScalarメソッド実行時)にエラーが発生します。サーバ用の動作環境ファイルに

DSO_LOCKを指定しないでください。

参照

上記以外の実行パラメタの詳細は、“アプリケーション開発ガイド(共通編)”を参照してください。

- 74 -

Page 80: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

付録C 使用可能SQL文一覧

Symfoware .NET Data Providerを使用したアプリケーションで指定可能なSQL文について説明します。

Symfoware .NET Data Providerでは、SymfowareCommandクラスに指定します。

表C.1 Symfoware .NET Data Providerで使用可能なSQL文分類 SQL文

スキーマ定義文 CREATE SCHEMA文 (注1)(スキーマ定義)

CREATE TABLE文 (注1) (注2)(表定義)

CREATE VIEW文

(ビュー定義)

CREATE PROCEDURE文(プロシジャルーチン定義)

CREATE FUNCTION文

(ファンクションルーチン定義)

CREATE INDEX文 (注1) (注2)(インデックス定義)

CREATE TRIGGER文(トリガ定義)

CREATE SEQUENCE文(順序定義)

スキーマ操作文 DROP SCHEMA文

(スキーマ削除文)

DROP TABLE文(表削除文)

ALTER TABLE文(表定義変更文)

DROP VIEW文

(ビュー削除文)

DROP PROCEDURE文(プロシジャルーチン削除文)

DROP INDEX文

(インデックス削除文)

DROP TRIGGER文(トリガ削除文)

SWAP TABLE文(表交換文)

DROP SEQUENCE文(順序削除文)

DROP FUNCTION文

(ファンクションルーチン削除文)

格納構造定義文 CREATE DSO文

(表のDSO定義文)

CREATE DSO文

(インデックスのDSO定義文)

- 75 -

Page 81: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

分類 SQL文

CREATE DSI文(表のDSI定義文)

CREATE DSI文(インデックスのDSI定義文)

CREATE SCOPE文(スコープ定義文)

格納構造操作文 DROP DSO文

(DSO削除文)

DROP DSI文(DSI削除文)

ALTER DSI文(DSI変更文)

DROP SCOPE文(スコープ削除文)

APPLY SCOPE文(スコープ適用文)

RELEASE SCOPE文(スコープ解除文)

データ操作文 問合せ式

INSERT文

DELETE文: 探索

UPDATE文: 探索

セション管理文 SET SCHEMA文

利用者制御文 CREATE USER文(利用者定義文)

DROP USER文(利用者削除文)

ALTER USER文(利用者変更文)

システム制御文 SET SYSTEM PARAMETER文

アクセス制御文 CREATE ROLE文(ロール定義文)

DROP ROLE文(ロール削除文)

GRANT文

REVOKE文

ストアドプロシジャ文 CALL文

注1) Symfoware .NET Data Providerを利用したアプリケーションで、スキーマ定義文、表定義文およびインデックス定義文を実行する

場合、指定するスキーマ名、表名およびインデックス名は、通常、8文字以内で指定します。

スキーマ名などの文字数を拡張したい場合、システム用の動作環境ファイルの“DEFAULT_DSI_NAME”を指定してください。

参照

“DEFAULT_DSI_NAME”の詳細は、“セットアップガイド”を参照してください。

- 76 -

Page 82: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

注2) Symfoware .NET Data Providerを利用したアプリケーションで、表定義文およびインデックス定義文を実行する場合、データベー

ス名と同じ名前の空きのあるデータベーススペースを用意しておく必要があります。

- 77 -

Page 83: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

索 引[数字]

2階層モデル..............................................................................23階層モデル..............................................................................24階層モデル..............................................................................1

[記号].NET CLS(共通言語仕様)のデータ型.....................................7.NET Frameworkアプリケーションの文字コード系...................7.NET Framework環境で 適な文字コード系...........................7

[A]AccessModeプロパティ............................................................42ACCESS_PLAN.......................................................................71app.config...................................................................................6

[B]BeginTransactionメソッド..........................................................36

[C]COBOL.....................................................................................11ConnectionLifetimeプロパティ.................................................42ConnectionStringプロパティ.......................................................6

[D]DEFAULT_ACCESS_MODE.................................................72DEFAULT_ISOLATION.........................................................72

[E]eventlogキーワードのオプション..............................................68eventlogキーワードの指定形式...............................................68EventLogによるデバッグ..........................................................21EventLogの出力内容...............................................................22EventLogの取得方法...............................................................21

[F]Fujitsu.Symfoware.Client名前空間.........................................25

[H]Hostプロパティ..........................................................................36

[N]NetCOBOL for .NET...............................................................11

[O]ODBCデータソースの登録......................................................13ODBCブリッジコード................................................................12

[P]Portプロパティ.....................................................................36,42

[R]ReleaseTableメソッド.................................................................37R_LOCK...................................................................................73

[S]Schemaプロパティ....................................................................42SERVER_ENV_FILE..............................................................73SetRoleメソッド..........................................................................38SetUserPasswordメソッド...........................................................40

SNDP_InitializeComponent.....................................................19SNDPコード生成ツール...........................................................17SNDPコード生成ツールにより生成されるオブジェクト名.......18SymfowareCommand.CommandTimeoutプロパティ...............43SymfowareCommand.CommandTextプロパティ................43,44SymfowareCommand.Disposeメソッド.................................43,44SymfowareCommandオブジェクト......................................43,44SymfowareConnection.BeginTransactionメソッド....................44SymfowareConnection.ConnectionStringプロパティ...............44SymfowareConnection.ServerVersionプロパティ....................44SymfowareConnectionStringBuilderコンストラクタ..................44SymfowareConnectionオブジェクト..........................................44SymfowareDataReader.Closeメソッド..................................43,44SymfowareDataReader.GetCharsメソッド.................................44SymfowareDataReader.GetStringメソッド.................................45SymfowareDataReaderオブジェクト....................................43,44SymfowareError.SQLStateプロパティ......................................45SymfowareError.ToStringメソッド.............................................45Symfoware .NET Data Providerのセットアップ........................11SymfowareParameterCollection..........................................43,46SymfowareParameter.ParameterNameプロパティ...............43,46SymfowareParameter.SymfowareDbTypeプロパティ..............45Symfoware Serverで使用可能な文字コード系.........................6Symfoware Serverの動作環境ファイルとの関係....................24SymfowareTransaction.IsolationLevelプロパティ....................46

[T]tuneparamキーワードの指定形式............................................70

[U]UNICODE..................................................................................7

[V]Visual Studioによるデバッグ....................................................21

[W]web.config..................................................................................6

[あ]アプリケーションサーバ..............................................................2アプリケーションで指定可能なSQL文....................................75アプリケーションのチューニング................................................3アプリケーションロジック...........................................................18エラーメッセージによるデバッグ..............................................21

[か]構成ファイル...............................................................................6コミット制御.................................................................................7コーディング方法の種類..........................................................11コード生成時の注意事項........................................................16

[さ]サーバ用の動作環境ファイル.................................................24サーバ用の動作環境ファイル名.............................................73時間隔型..................................................................................13資源解放.............................................................................43,44システム用の動作環境ファイル...............................................24

- 78 -

Page 84: (.NET Data Provider編 アプリケーション開発ガイドsoftware.fujitsu.com/jp/manual/manualfiles/M100005/J2X...J2X1-7486-02Z0(00) 2010年2月 Windows/Solaris/Linux Symfoware

実行パラメタ.............................................................................70自動生成可能なコード.............................................................13接続先情報の指定方法............................................................6占有の単位..............................................................................73

[た]チューニング方法.....................................................................24デバッグ順序............................................................................21データ取得可能なSymfoware .NET Data Providerのメソッド.....9データ接続の作成...................................................................14データの代入.............................................................................7データの取出し..........................................................................7データベースの文字コード系との関係.....................................7データベースへの接続先情報................................................19独立性水準................................................................................7独立性水準の既定値................................................................7トランザクションアクセスモード...................................................7

[は]非接続型データアクセス...........................................................7

[ま]文字の欠損................................................................................7

[ら]利用可能な開発言語.................................................................3ログの取得..................................................................................3

- 79 -