2021-01-01から1年間の記事一覧

SecurityUtil

VB

Imports System.IOImports System.Security.CryptographyPublic Class SecurityUtils '------------------------------------------------------------------------ '---AESについて '--------------------------------------------------------------------…

SQLServerのバックアップリストアについて

SQL

Sql server のバックアップとリストアの基礎 from Masayuki Ozawa www.slideshare.net

Window関数1

SQL

行同士の比較やサマリが必要な場合や、 単独列でサマリ値などが必要な場合に使おう。 qiita.com ■以下のテーブルに、色んなWindow関数を当ててみる ■各行にScoreの合計を単純にセット SELECT No,student_id, subject, score, sum(score) over()FROM TestScor…

ストアドの色々

SQL

■引数を生成 ・Create句の直後に記述 CREATE PROCEDURE [dbo].spStudy2 @Master NVARCHAR(100)= NULL '引数 ,@ReturnValue NVARCHAR(100) OUTPUT '戻り値AS ■IF文 ・ELSE IF句はそもそもない ・IF文内の適用範囲(IFはどこまでか、ELSE IFはどこまでか)はBEGI…

ストアドの例

SQL

ALTER PROCEDURE [dbo].spStudy2 /* 引数はストアド名の後、AS句前に宣言 */ @Master NVARCHAR(100)= NULL /* OUTPUTを付与した引数は戻り値をアプリに返せる */ ,@ReturnValue NVARCHAR(100) OUTPUT AS /* IF分岐 */ /* ELSEIF句はない。 ELSE IF */ /* 各…

行列入れ替え

SQL

(*)数値項目を合算して列に~ならPIVOT句とかを使えば良いです。 以下は、非数値項目の例 ⇒https://yyuuiikk.org/entry/590 ■以下の様なテーブルの行列を入れ替える 〇パターン1 ・キー(AgmtId)だけを抽出したテーブル(AgmtFamily A)に対して、 キーと各変換…

直積2 単一テーブルでのCROSS JOIN

SQL

■直積は、単一テーブルの各列間でも取得することができる。 meetingsテーブル 上記テーブルから、meetingとpersonの直積を求める SELECT DISTINCT m1.meeting,m2.person FROM meetings m1 CROSS JOIN meetings m2 本来の直積はDistinct無しで以下の様なデー…

直積(CROSS JOIN

■データ間の全ての組み合わせを取得することを直積という。 users items(owner_idとusers.idは連結キーとする) 上記の様なテーブルがある場合に、両テーブル間の全組み合わせを取る。・SELECT U.*,I.* FROM users u CROSS JOIN items I 通常、LEFT OUTER JOI…

Exists句

SQL

■Exsists句は、INの様に ・条件に一致するもの ・条件に一致しないもの といったデータを高速に抽出することができる。 ex1) ①上記データから、全教科50点以上のStudent‗idを抽出する SELECT DISTINCT T1.student_id FROM TestScore AS T1 WHERE NOT EXISTS(…

文字列長を正確に取得する

VB

■string.Lengthで文字列長を取得はできるが、一部の特殊な文字などは 正確に取得することができない。 ex) 𩸽:ほっけは一文字だが、Lengthなど2文字になってしまう。 正確に取得するには、StringInfoを使用する。 Dim si As New StringInfo(str) Return si.L…

トランザクションログの切り捨て、圧縮

SQL

USE [対象のDB] DBCC SHRINKFILE('論理ログファイル名', 0) ■初期ファイルサイズ(例:200MB)と自動拡張サイズ(例:100MB毎)を変更 ALTER DATABASE [対象のDB]MODIFY FILE (NAME=論理ログファイル名,SIZE=200MB,MAXSIZE=UNLIMITED,FILEGROWTH=100MB); social.…

getter/setterを使うなとは

単純に絶対にgetter/setterを設けるなということではなく、 必要な情報を持つクラス自体に必要な処理をさせ、メソッド経由でその値を受けるべき。getterを呼び出すような処理を実装している場合、その処理は本来呼び出されるクラス側で実装されるべきだとい…

ジェネリックなインターフェース

VB

■定義 Public Interface ITDList(Of T) Function DataLists() As List(Of T) End Interface ■使用例 Public Class TDUserInfo Inherits BaseDAO Implements ITDCount, ITDList(Of TUserInfo) Public Function DataLists() As List(Of TUserInfo) Implements …

Nullableに対するリフレクション

Nullableの型に対して型情報を取得しようとすると、"Nullable"が返ってきてしまう。元の型名を取得するには、Nullable.GetUnderlyingTypeを使用する。 例) ・あるproperty:propがDatetime?だったとする。 ⇒Nullable.GetUnderlyingType(prop.PropertyType).n…

NUll判定

VB

■Null(Nothing)でない場合に、そのオブジェクトに対して処理を行うといった場合の書き方 ・昔 If myObj Is Nothing Then ’Nothingじゃない場合の処理 myobj.test = "test" End If ・今 Null条件演算子を使って以下の様に簡潔に書ける myobj?.test = "test" m…

Visual Studioで検索時、Designer等を検索対象外にする。

VB

①Shift + Ctrl + Fで以下のウィンドを表示 ②ファイルの種類に、以下の文字列を入力 !*\bin\*;!*\obj\*;!*\.*;!*.Designer.vb;!*.resx;

多次元配列の要素数を取得する。

■多次元配列の各要素の数は、GetLength()で取得可能。 ・配列変数.GetLength(x):xには要素を取得したい次元を指定

Disposeの実装

VB

#Region "IDisposable Support" Private disposedValue As Boolean = False ' 重複する呼び出しを検出するには ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not disposedValue Then If disposing Then ' TODO: マネージ状態…

匿名クラスを型指定する

VB

LINQでSelectする際等に匿名クラスを使用する。 その際、以下の様に指定すると戻り値は当然匿名型となる。 testList = list.Select(Function(x) New With {.GrantSum, x.UserGrant}) Newの後に型名()を指定すると、戻り値がその型となる。 testList = list.S…

関数の引数等にジェネリック型を指定する

VB

■関数等の引数にジェネリッククラスを指定する際の定義方法 ・例として以下のようなジェネリッククラスをメソッドの引数に指定する。 Public Class TData(Of T As New) End Sub ・定義方法 Function/Sub 関数名(ジェネリック)(関数の引数) ・例 Function Exp…

カスタム属性

VB

属性は、ClassやMethod、property等に、任意のパラメータを追加することができる。 追加した内容をリフレクションで読取、使用することが可能。 例えば以下は、TClassの各Propertyに、画面に表示する際の列名、Export時のヘッダ名、 また、出力の有無といっ…

DebuggerDisplay属性

VB

DebugDisplay属性を指定する事で、Debug時にウォッチで 当該クラスを見たときに、展開せずとも内容を表示することができる。 (例)<DebuggerDisplay("{UserId} {UserName} {UserPassword}")>Public Class TUserInfo Implements ITData ↓ウォッチ画面では、展開せずとも内容が表示される</debuggerdisplay("{userid}>

自フォーム内のメソッドをリフレクションで実行

VB

自フォーム内に定義しているメソッドへのリフレクションは、 MeのGetTypeを取得することで可能。 ただし、対象のメソッド名がPublicでないと、何故か取得できない。。 自フォーム内じゃなくてClassに定義しておけばようのでしょうが。 Dim typ As Type = Me.…

トリガー

SQL

テーブルの更新履歴データ等を残したい場合は、トリガを使うのが 一番早い。 ■イメージ ・履歴を残したいテーブルの履歴テーブルを作る。 このテーブルのフォーマットは、元テーブルのレイアウト プラス、追加で残したい任意の情報(更新された日時、UpDateか…

SQLParameterの値にNothing値をセットした場合、そのパラメータが無効になる

VB

ストアド呼出自、そのCommandParametersにNothingを渡した場合、 以下のエラーが発生する。 実行時に"プロシージャまたは関数 'XXX' にはパラメーター '@YYYYY' が必要ですが、指定されませんでした。 Nullをセットしたい場合は、ParameterにDBnull.Valueを…

XMLファイルのImport

VB

■XDocumentを使う 以下は、xml内の指定のNodeの値をListで取得する例 xDoc as XDocument = new XDocument.Load(importFilePath) xDoc.Elements("mappings").Elements("mapping"). Select(Function(x) x.Attribute("ColumnName").Value).ToList <以下のような…

クラス内の構造体に対するリフレクション

VB

tBase:構造体を持つクラス ’---フィルタ条件を作成 Dim flag As BindingFlags = BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.Static Or BindingFlags.FlattenHierarchy '---構造体のインスタンスを生成(インスタンスからじゃないとフィ…

ComboboxがDropdownListの場合のSelectedText

SelectedTextは、どんなコントロールであれ選択されたテキスト部分が返される。 よって、DropdownListはテキストの部分選択ができない為、常に””が返される。 Comboboxの入力チェックは、SelectedValueやSelectedIndexなどで臨機応変に行う。 例えば、コンボ…

Genericな自作クラス

VB

■クラス名の直後に、型パラメータを指定する形で宣言 ・Public Class クラス名(Of 型パラメータ AS 制約) (ex) Public Class TestClass(Of T As New)

Genericな自作メソッド

VB

■メソッド名の直後に、型パラメータを停止する形で宣言 ・Sub/Function メソッド名(Of 型パラメータ)(引数) (ex) Sub TestMethod(Of T1, T2)(ByVal dic As Dictionary(Of T1, T2))