SQLServer日記

SQLServer2005のストアドでTransaction

1 Mins read

下のコメントついでに2005の処理
2005からはTry~Catchっぽくなってる
(2000方式でももちろんOK!)
 

BEGIN TRY
BEGIN TRANSACTION            --トランザクションの開始

   --SQL文1

    COMMIT TRANSACTION       --トランザクションを確定
END TRY

--例外処理
BEGIN CATCH
    ROLLBACK TRANSACTION     --トランザクションを取り消し
    PRINT ERROR_MESSAGE()    --エラー内容を戻す
    PRINT 'ROLLBACK TRANSACTION'
END CATCH
Read more
SQLServer日記

SQLServer2000のストアドでTransaction

1 Mins read

なんでもやります(笑)って、
今日はちょっとストアド書いていて引っかかったので覚書

SQLを実行してエラーになると@@error変数にエラー番号が格納されるのを使用する方法
 

BEGIN TRANS

--SQL文1
if @@error <> 0 goto hoge

--SQL2
if @@error <> 0 goto hoge

COMMIT
RETURN

hoge:
ROLLBACK
Print N'Error'
RETURN

こんな感じ(笑)

Read more
JavaScript日記

ExtJS TableLayoutでinputなど表示エラー?

1 Mins read

ExtJS2.2にてTabPanel内にTableLayoutを使用すると2つ目以降のTabにて表示がされない問題が発生!
症状をおってみる・・・、ブラウザサイズを変更すると表示されるときがある???

本体のソースも追ってみると、どうやら「monitorResize:false」が固定されているのが問題らしい。
ためしにtrueに変更してみると・・・ビンゴ!

但し、本体ソースに変更は加えたくないのでラッパーとして以下のLayoutを追加し、使用する

//Tab内で使用する場合に「monitorResize:false」のためrenderされないので修正!
//他での使用にて問題がでる可能性もあるので要注意!
Ext.layout.TableLayoutEx = Ext.extend(Ext.layout.TableLayout, {
    // private
    monitorResize:true
    //monitorResize:false,
});
//Layoutタイプは「'tableex'」
Ext.Container.LAYOUTS['tableex'] = Ext.layout.TableLayoutEx;

これで取りあえず、今のところ問題なし、この辺りの処理は
アニメーションなども絡んでそうで時間があったら追ってみよう(笑)

Read more
JavaScript日記

ExtJS Viewportを使用しないLayout方法

1 Mins read

ExtJSでViewportを使用しないでLayoutする方法です。

前にも記載したのですが、Viewportはお手軽に使える一方、画面を乗っ取ってしまうので
画面の一部のコンポーネントとして組み込むことが出来ません。

Panelのみでサンプルを作成してみました。

Ext.onReady(function() {

Ext.get(document.body).update('<div id="test1"></div>');
new Ext.Panel({
	id: 'hoge',
	//styleを'viewport'に
    defaultType: 'viewport',
	//render先は
    renderTo: 'test1',
	//frameで枠を表示
	frame: true,
	//タイトル設定
	title: 'test1 title',
	//widthの設定
	//width: 400,
	width: '100%',
	height: 600,
	//autoHeight: true,
	//ウィンドウリサイズイベントを監視し内容を再描画する
	//「width: '100%'」対応
	monitorResize: true,
	//layout方法は「border」
	layout: 'border',
	//子要素に対し標準設定
	defaults: {
				xtype: 'panel',
				autoScroll: true, 
				minSize: 30,
				maxSize: 100,
				//パネルの開閉
				collapsible: true,
				frame: true
				},
	items: [{
		//regionでこのパネルは「north」=上へ
		region: 'north',
		//ヘッダー表示
		header: true,
		height: 50,
		//split表示On
		split: true,
	    html: 'hoge HTML north'
	},{
		//regionでこのパネルは「west」=左へ
		region: 'west',
		width: 50,
		//split表示On
		split: true,
	    html: 'hoge HTML west'
	},{
		//regionでこのパネルは「east」=右へ
		region: 'east',
		//タイトルを設定すると自動的にヘッダー表示がOnになる
		title: 'east title',
		width: 50,
		//split表示On
		split: true,
	    html: 'hoge HTML east'
	},{
		//regionでこのパネルは「south」=下へ
		region: 'south',
		width: 50,
		//split表示On
		split: false,
	    html: '<p>hoge HTML south 「split: false」</p>'
	},{
		//regionでこのパネルは上「center」メイン画面
		region: 'center',
	    html: 'hoge HTML center'
	}]			
});

});

また、親、子ともframeをfalseにすると丸みが無くなり、標準?表示になります。
「frame: false」

Read more
JavaScript日記

ExtJS themeの設定

1 Mins read

themeの設定では初めに「ext-all.css」を設定しその後に「xtheme-gray.css」などを
設定すれば変えられます。
 

<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="resources/css/xtheme-gray.css" />

標準では「gray」が入っており、ExtJSのExtensionsのページでも入手できます。

Read more