1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロデルでデータベースSQLServer2022(ステップ2)トランザクションしてみる

Last updated at Posted at 2023-12-06

はじめに

今回はプロデルでデータベースSQLServer2022のステップ2で、トランザクションを構成してみます。

この記事内容の作業環境

Windows11 Pro 22H2
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz
Produire Version 2.0.1197 for Windows
SQL Server 16.0.1000.6 Express Edition
SQL Server Management Studio 19.2.56.2

お題のデータべース

こんなテーブル構成のデータベースを作成しております。
データベース名は「日本語プログラミング言語」です。
db.png

お題のソースコード

プロデル

mssq2.rdr
※コンソール
【conn:SQLServerデータベース】

【sql1:文字列】は、「INSERT INTO 後継言語  (言語ID,後継言語ID) VALUES (@p1, @p2)」
【sql2:文字列】は、「UPDATE 後継言語 SET 後継言語ID =@p1 WHERE 言語ID =@p2」
【sql3:文字列】は、「SELECT LN.言語名,LN.公開年,LN.よみがな,KLN.言語名 AS 後継言語名 
FROM 言語名 AS LN
LEFT JOIN 後継言語 AS KL ON LN.言語ID=KL.言語ID
LEFT JOIN 言語名 AS KLN ON KL.後継言語ID=KLN.言語ID
WHERE LN.言語ID =@p1」
param1は{@p1=2,@p2=8}
param2は{@p1=6,@p2=2}
param3は{@p1=2}

メイン実行する。

メイン実行する手順
	接続構成する
	connへ接続する
	connでトランザクションを開始する
	例外監視
		sql1をparam1としてconnで実行して、結果1とする
		sql2をparam2としてconnで実行して、結果2とする
   
	   	connでトランザクションを完了する
  発生した場合
		connでトランザクションを取り消す
    監視終わり	
    
	connからsql3をparam3として取得して、結果3とする
	結果3の内容をコンソールへ表示して改行する

	connから切断する
終わり

接続構成する手順
	connというSQLServerデータベースを作る
	connのデータソースは「DESKTOP-078KPRA\SQLEXPRESS」
	connのデータベースは「日本語プログラミング言語」
	connのWindows認証は、○
終わり

↑こちらの詳しい説明を拝見して書いています。

実行結果

それでは実行してみましょう。コンパイルはプロデルデザイナで実行ファイルの作成するで行っています。

C:\produire\sample2>mssql2.exe
{{TTS,2000,てぃーてぃーえす,プロデル},{TTS,2000,てぃーてぃーえす,スミレ}}

C:\produire\sample2>

ちょっとわかりやすくするため結果を改行してみます。

{
{TTS,2000,てぃーてぃーえす,プロデル},
{TTS,2000,てぃーてぃーえす,スミレ}
}

おわりに

次回は例外をスローしてロールバックを検証してみます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?