2007年6月8日金曜日

[SQL Server 2005] SQL Serverでテーブル定義取得

SQL Server 2005で、テーブル定義らしいものを取得するクエリです。
これを使って、テーブル定義書を自動生成させてます。

select
Col.name as '名称'
,(Select top 1 name From systypes Where systypes.xtype = Col.xtype) as '型'
,Col.length as '桁数'
,case isnull(Col.scale,0)
 when 0 then ' '
 else cast( Col.scale as char(10) )
 end '小数部'
,case  Col.isnullable
 when 0 then '○'
 else ' '
 end 'NN'
,isnull((select case colid when 0 then '' else '○' end  from sysindexkeys as keys where col.id = keys.id  and col.colid = keys.colid and keys.indid = 1),' ') as 'PK'
,isnull((select top 1 ex.value from sys.extended_properties as ex where col.id = ex.major_id and ex.minor_id = col.colid and ex.name = 'MS_Description' ),' ') as 'コメント'
From syscolumns as col
inner join sysobjects as obj on col.id = obj.id
Where obj.name = '<テーブル名>'

2007年4月23日月曜日

[ASP.NET] Validator系の動作

知らなかった。。。

Validator系(RequiredFieldValidator、RegularExpressionValidator、CompareValidator、RangeValidator)はクライアント側のチェックだけではなくて、サーバ側でもチェックを行っていたんですね。

ただし、CustomValidatorはサーバサイドではチェックされないんですね。

たまには本を読むのもよいものですね。

2007年4月13日金曜日

[ASP] ASPからVB2005のDLLを使う

ASP.NetではなくてASPです。
色々調べてたんですけど、勝手にかなりメンドクサイらしいという結論に達してました。
ところが、K君に「こんな感じで出きったぽいんですけど。。」と。

うん。出来てました。

1.VB2005でクラスライブラリを作成する。
2.新しい項目の追加で「COMクラス」を追加する。
3.COMクラスを作りこむ
4.セットアッププロジェクトを追加してインストーラを作る
5.インストールする

なんと、これだけでいけちゃいました。

例えば「ASPComTest01」と言うプロジェクトを作成して、
その中にCOMクラス「ComClassTest01」を追加します。
で、適当に文字列を返すメソッド「TestString」を作ります。
そしてインストール。
ASP側は

Set obj = Server.CreateObjext("ASPComTest01.ComClassTest01")

なんて感じでインスタンスは出来ちゃいます。

はぁ~。