.NETSQLServer日記

SQLServer2000 ストアドでOutputを取得する

1 Mins read

これも覚書、前にもくらった記憶が(苦笑)

ストアドからOutputされた値をCommandItemで受け取ったら、Connect Close後にしか
中身が見えないことに注意!
 

' Assumes that connection is a valid SqlConnection object.
Dim command As SqlCommand = New SqlCommand("SampleProc", connection)
command.CommandType = CommandType.StoredProcedure

Dim parameter As SqlParameter = command.Parameters.Add( _
  "RETURN_VALUE", SqlDbType.Int)
parameter.Direction = ParameterDirection.ReturnValue

parameter = command.Parameters.Add( _
  "@InputParm", SqlDbType.NVarChar, 12)
parameter.Value = "Sample Value"

parameter = command.Parameters.Add( _
  "@OutputParm", SqlDbType.NVarChar, 28)
parameter.Direction = ParameterDirection.Output

connection.Open()

Dim reader As SqlDataReader = command.ExecuteReader()

Console.WriteLine( _
  "{0}, {1}", reader.GetName(0), reader.GetName(1))

Do While reader.Read()
  Console.WriteLine( _
    "{0}, {1}", reader.GetInt32(0), reader.GetString(1))
Loop

reader.Close()
connection.Close()

Console.WriteLine( _
  " @OutputParm: {0}", command.Parameters("@OutputParm").Value)
Console.WriteLine( _
  "RETURN_VALUE: {0}", command.Parameters("RETURN_VALUE").Value)
Read more
SQLServer日記

SQLServer2000でalter tableでDEFAULTカラムがある場合

1 Mins read

SQLServer2000でDEFAULTカラムをalter tableする場合、
制約として宣言されてしまうので、まずは制約を削除する必要がある。

Oracleなどでは確か、カラムのプロパティ情報として持っているので
そのまま、Dorp出来たと思う。

クエリアナライザから「DF__hoge_tbl__hogecol__xxx」を消してもよいが
GUIが使用できない場合に「DF__hoge_tbl__hogecol__xxx」の「xxx」の部分が
分からないので確認する方法は以下となる。
(注意:別の方法があれば教えてください(汗))

まずは以下のようなSQLを投げると
ALTER TABLE hoge_tbl ALTER COLUMN hogecol INT

メッセージ 5074、レベル 16、状態 1、サーバー HOGEDB、
行 1オブジェクト ‘DF__hoge_tbl__hogecol__xxx’ は 列 ‘hogecol’ に依存しています。

これで名前が分かるので、このキーを
ALTER TABLE hoge_tbl DROP CONSTRAINT DF__hoge_tbl__hogecol__xxx

あとは好きにして(笑)

Read more
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