Visual Basic Oracle Database 11g Release 1

Slides:



Advertisements
Similar presentations
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
Advertisements

0 クイックスタートガイド|管理者編 スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス.
わんくま同盟 名古屋勉強会 # 初音 玲. わんくま同盟 名古屋勉強会 #4 今日の前提 Windows Mobile アプリの話が中心 BASIC 認証 httphttp http (XML) SOAP.
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
AdventNet SwisSQL データベース自動移行ツール.
Curlの特徴.
IIS 4.0で開発をするコツ Webアプリケーション構築.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
情報理工学部 情報システム工学科 3年 H 井奈波 和也
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Visual Studio 2005による XML Web サービス入門
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
S2Container.NET, S2Dao.NET コミッタ 藤井 宏明
Visual Studio 2005による Web アプリケーション入門
Twitterクライアントに学ぶASP.NETアプリ
12.3,E,-15, 12.3,E5,+,=, >,<,…,
Solid Edge Customization with VB   (Fundamentals)
第4回 個人の動画配信補足のためのWeb構築
Microsoft .NET 入門 Silverlight のための 福井コンピュータ株式会社 小島 富治雄
Visual Studio LightSwitchの概要
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
HTTPプロトコルとJSP (1) データベース論 第3回.
HTTPプロトコル J2EE I 第7回 /
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Miku + Oracle = Visual Basic ?
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
プログラミング言語入門 手続き型言語としてのJava
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Oracle XEを使ってみよう 初音玲.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
Visual Studio 2005による スマート クライアント入門
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
SQL パフォーマンス チューニング ~ プランガイドの利用~
いまさら聞けないVB2008 ADO.NET超入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
Active Directory & SAP ユーザー管理統合ソリューション
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
Emoneαプログラミング入門 初音 玲.
Windows PowerShell Cmdlet
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
.NET Framework 3.0 概要 (旧称 : WinFX)
データベースアクセス技術 ADO.NET 2.0 開発者カテゴリ ◆NOTES◆
仕事: SystemVerilogを使いたい
Javaによる Webアプリケーション入門 第7回
Microsoft BizTalk Server & SAP PP モジュール 連携検証レポート概要
COM コンポーネント・オブジェクト・モデル.
Oracle XEを使ってみよう 初音玲.
Twitterクライアントに学ぶASP.NETアプリ
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
高度プログラミング演習 (01).
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
Javaによる Webアプリケーション入門 第8回
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
TableAdapterとSQLDependency 便利さを使い倒そう。 by えムナウ
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
プログラム分散化のための アスペクト指向言語
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
Microsoft Office Project Server 2007
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

Visual Basic 2008 + Oracle Database 11g Release 1 XML WEBサービス Part.3 Visual Basic 2008 + Oracle Database 11g Release 1 2008.06.07 初音 玲

index WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

自己紹介 Z80 アセンブラ 6809 F-BASIC N88-BASIC FORTRAN 77 COBOL LISP Turbo Pascal Prolog KABA C言語 Mシリーズ PL/I VB3.0~ PL/SQL T-SQL VB2005/2008

はじめに WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

XMLWEBサービスとは SOAP XML SOAP XML SOAP XML

SOAPとは POST /WankumaTokyo22/Connection.asmx HTTP/1.1 Host: localhost Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi=・・・・・・・・・・・・・・・・・・・・・・> <soap12:Body>    : </soap12:Body> </soap12:Envelope> HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi= ・・・・・・・・・・・・・・・・・・・・・・ > <soap12:Body>     : </soap12:Body> </soap12:Envelope>

Windowsアプリ+WEBサービス Winアプリ XML WEBサービス DB

WEBアプリ+WEBサービス ブラウザ WEBアプリ XML WEBサービス DB FW

WEBサービスの配置について サイトの発行 開発環境 実行環境 MSIL 手動XCOPY MSIL 初回時 MSIL 手動XCOPY naitive サイトの発行 MSIL 手動XCOPY MSIL 初回時 naitive MSIL FTP MSIL 初回時 naitive HTTP MSIL 初回時 naitive ソース 手動XCOPY ソース 初回時 MSIL 初回時 naitive

WEBアプリのときは、aspxファイルの内容をサイト上で更新できるかを決定 dll (aspx.vbのMSIL) JITコンパイル テンポラリアセンブリ

プロジェクトと仮想フォルダの関係について ソリューション IIS プロジェクト1 仮想フォルダ1 WP プロジェクト2 仮想フォルダ2 WP プロジェクト3 仮想フォルダ3 WP プロジェクト4 仮想フォルダ4 WP

はじめに WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

ADO.NETの基本的な構造 データベース .NETデータプロバイダ DataSet Windowsコントロール ASP.NETコントロール Parameter DataAdapter プログラミング Command DataReader DataSet Connection Transaction プログラミング データベース Windowsコントロール ASP.NETコントロール

ODP.NETの基本的な構造 Oracle Database ODP.NET DataSet Windowsコントロール OracleParameter OracleDataAdapter プログラミング OracleCommand OracleDataReader DataSet OracleConnection OracleTransaction プログラミング Oracle Database Windowsコントロール ASP.NETコントロール

Visual StudioからOracleに接続 ビルド アセンブリ ODT デプロイ .NETストアド(アセンブリ) ODP.NET ODP.NET ODE.NET ODP.NET Oracle Database ODP.NET:Oracle Data Provider for .NET ODT :Orace Developer Tools for Visual Studio ODE.NET:Oracle Database Extensions for .NET

ODTとVSのバージョン関連表 対応DBバージョン 対応Visual Studio ODT 10.1.x.x Oracle 9i Database Release 2 Oracle Database 10g Release 1 Visual Studio .NET 2003 ODT 10.2.0.1 Oracle Database 10g Release 2 ODT 10.2.0.2 Oracle8i R8.1.7.4以降 Visual Studio 2005 ODT 11.1.0.6 Oracle 9i Database Release 2~ Visual Studio 2008 ~ODT 10.2:サーバーエクスプローラとは別 ODT 11.1~:サーバーエクスプローラに統合

ログオン 2.4 3.0 3.2 1.0 参照 2.0 3.5 追加 0.7 更新 1.2 専用ミドルウェアは、やっぱり速い OLE DB .NET Data Provider OLE DB Provider for Oracle ODP.NET oo4o ログオン 2.4 3.0 3.2 1.0 参照 2.0 3.5 追加 0.7 更新 1.2 VB2005+oo4oの処理時間を1としたときの相対比 独自プログラムによる測定

メモリ上の仮想データベース DataTablesコレクション DataRelationsコレクション DataTableクラス DataSetクラス メモリ上の仮想データベース DataTablesコレクション DataTableクラス DataRowsコレクション DataColumnsコレクション Constraintsコレクション DataRelationsコレクション RDBMSのリレーション定義に相当 親子関係を定義 行 列 主キー,外部キー制約

データソースから前方向、読取専用でデータ取得 ODP.NET 特定のデータソースへの接続を確立 OracleConnection オブジェクト データソースに対してコマンドを実行 OracleCommand データソースから前方向、読取専用でデータ取得 OracleDataReader DataSetを設定し、データソースを使用して更新内容を解決 OracleDataAdapter

index WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

OracleConnectionオブジェクト <WebMethod(Description:="認証チェック")> _ Public Function IsLogin2(ByVal userID As String, _ ByVal password As String) As Boolean Dim isOK As Boolean = False Dim cn As New OracleConnection() cn.ConnectionString = _ String.Format(Setting.ConnectionString, userID, password) cn.Open() isOK = True Try cn.Close() Catch ex As Exception End Try End Function

エラー処理をおこなって呼び出し元に戻る cn.OpenをTry~Catchで囲む CatchにはException Try~Catch ADO.NETからのエラーの取得 エラー処理をおこなって呼び出し元に戻る cn.OpenをTry~Catchで囲む CatchにはException Try~Catch エラーは例外として呼び出し元に戻る エラーログを一元取得したいとき Try~Catchでは囲まない Global.asax

ODP.NETのデフォルト動作はPooling=True 接続プーリング DBサーバ アプリケーション ODP.NET 接続 接続処理 切断 疑似 接続 疑似 切断 疑似 接続 疑似 切断 疑似 User Id={0};Password={1};Data Source=ホスト文字列; ODP.NETのデフォルト動作はPooling=True

index WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

OracleDataReader <WebMethod(Description:="EMPテーブルからEMPNO,ENAMEを取得する")> _ Public Function GetRecords(ByVal userID As String, _ ByVal password As String) As (Of TStatus) Using _cn As New Oracle.DataAccess.Client.OracleConnection() : Using _cmd As New OracleCommand(sqlString, _cn) Dim rd As OracleDataReader = Nothing rd = _cmd.ExecuteReader Do While rd.Read Dim item As New TStatus item.EmpNo = rd.Item("EMPNO").ToString item.Ename = rd.Item("ENAME").ToString emp.Add(item) Loop End Using _cn.Close() Return emp End Function

Parameterオブジェクト 以下の条件を与えたときの実行結果は?

index WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

データソースとDataSetクラスの対応付け .NETデータプロバイダには、更新可能セットがない もちろん更新も可能 DataSetは仮想的なデータベース DataSetによるデータソースの更新可能セットを実現 .NETデータプロバイダとDataSetの相互乗り入れ アプリ データソース Command DataAdapter Dataset

OracleDataAdapterオブジェクト <WebMethod(Description:="EMPテーブルを取得する")> _ Public Function GetRecords(ByVal userID As String, _ ByVal password As String) As System.Data.DataSet Const sqlString As String = "SELECT * FROM EMP" Dim Ds As New System.Data.DataSet Using _cn As New OracleConnection() _cn.ConnectionString = String.Format(Setting.ConnectionString, userID, password) _cn.Open() Using _cmd As New OracleCommand(sqlString, _cn) Using _da As New OracleDataAdapter(_cmd) _da.Fill(Ds, "EMP") End Using _cn.Close() Return Ds End Function

OracleCommandBuilderでSQL作成 Using _tr As OracleTransaction = _cn.BeginTransaction() Using _cmd As New OracleCommand(sqlString, _cn) _cmd.Transaction = _tr '###重要### Using _da As New OracleDataAdapter(_cmd) Using cb As New OracleCommandBuilder(_da) _da.UpdateCommand = cb.GetUpdateCommand() _da.InsertCommand = cb.GetInsertCommand() _da.DeleteCommand = cb.GetDeleteCommand() _da.Update(ds, "EMP") isOK = True If isOK Then _tr.Commit() Else _tr.Rollback() End If End Using

TableAdapterごとにConnectionが存在 暗黙的なトランザクション TableAdapterごとにConnectionが存在 Connectionに対するトランザクションでは無理 OracleConnection オブジェクト MS-DTC (マイクロソフト分散トランザクションコーディネータ) DEPTTableAdapterオブジェクト OracleCommand オブジェクト Oracle Database OracleConnection オブジェクト EMPTableAdapterオブジェクト OracleCommand オブジェクト MS-DTC (マイクロソフト分散トランザクションコーディネータ) System.Transactionsクラスを使う

暗黙的なトランザクション ADO.NET 2.0からは COM+カタログ登録不要 GACへの登録不要 Try Me.Validate() Using _trn As New System.Transactions.TransactionScope Me.DEPTBindingSource.EndEdit() Me.DEPTTableAdapter.Update(Me.DataSet1.DEPT) ' Me.EMPBindingSource.EndEdit() Me.EMPTableAdapter.Update(Me.DataSet1.EMP) _trn.Complete() 'トランザクション完了 End Using Catch ex As System.Transactions.TransactionAbortedException MessageBox.Show(ex.Message) Catch ex As Exception End Try ADO.NET 2.0からは COM+カタログ登録不要 GACへの登録不要 System.Transactionsの参照設定を忘れないように

index WEBサービス OracleとADO.NETの関係 接続 データ取得 データ更新 権限

権限 コネクションプーリング アプリ側でアクセス制御 直接ツールで接続されたら? アプリ側にバグがあったら? 接続は、アプリ固有ユーザID DBの設定でアクセス制御 直接ツールで接続されても安全 アプリ側にバグがあっても安全 接続は、利用者固有ユーザID

Oracleにおけるユーザ管理 Oracle認証 Oracle インスタンス ユーザー 認証 権限 Windows Windows認証 Security Policy Windows Windows認証 Oracle インスタンス ユーザー ユーザー 認証 権限 Security Policy Security Policy ローカル認証だと4万人くらいが限界なのでAD認証も考慮

Windowsアプリにおけるお勧め認証構造 XML WEBサービス DB ID/パス渡し DB認証 Windows認証

WEBアプリにおけるお勧め認証構造 ブラウザ WEBアプリ XML WEBサービス DB ID/パス渡し DB認証

接続 権限 データ取得 データ更新 接続プーリング Oracle認証 Windows認証 コード記述開発 GUI操作開発 まとめ 接続 権限 接続プーリング Oracle認証 データ取得 Windows認証 コード記述開発 GUI操作開発 データ更新 CommandBuilder トランザクション

QA