<SQLServer>バックアップ
自分めも。
めったにしないもんだから、毎回はまります。
何も考えずバックアップすると怒られます。
なんでかなー。
「メディアオプション」で「新しいメディアセットにバックアップし、すべての既存のバックアップセットを消去する」
を選択するとできました。
ここ、参考にさせていただきました。
助かりました。
「ファイルを開く」ダイアログボックスの表示
めも
''' <summary> ''' 「ファイルを開く」ダイアログボックスの表示 ''' </summary> ''' <param name="pFileName">初期表示するファイル名</param> ''' <param name="pDirectory">初期表示するディレクトリ</param> ''' <param name="pFilter">ファイルのフィルタ</param> ''' <param name="pFilterIndex">ファイルの種類 の初期設定</param> ''' <param name="pTitle">タイトル</param> ''' <param name="pMultiselect">複数のファイルを選択可能にする (初期値 False)</param> ''' <returns>ファイルのフルパス</returns> Public Function OpenFileName(Optional ByVal pFileName As String = "", Optional ByVal pDirectory As String = "C:\", Optional ByVal pFilter As String = "CSVファイル(*.csv)|*.csv;|すべてのファイル(*.*)|*.*", Optional ByVal pFilterIndex As Integer = 1, Optional ByVal pTitle As String = "ファイルを選択してください", Optional ByVal pMultiselect As Boolean = False) As String Dim ofd As New OpenFileDialog() ofd.FileName = pFileName ofd.InitialDirectory = pDirectory ofd.Filter = pFilter ofd.FilterIndex = pFilterIndex ofd.Title = pTitle ofd.Multiselect = pMultiselect ' ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 False) 'ofd.RestoreDirectory = True ' [ヘルプ] ボタンを表示する (初期値 False) 'ofd.ShowHelp = True ' [読み取り専用] チェックボックスを表示する (初期値 False) 'ofd.ShowReadOnly = True ' [読み取り専用] チェックボックスをオンにする (初期値 False) 'ofd.ReadOnlyChecked = True ' 存在しないファイルを指定した場合は警告を表示する (初期値 True) 'OpenFileDialog1.CheckFileExists = True ' 存在しないパスを指定した場合は警告を表示する (初期値 True) 'OpenFileDialog1.CheckPathExists = True ' 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 True) 'OpenFileDialog1.AddExtension = True ' 有効な Win32 ファイル名だけを受け入れるようにする (初期値 True) 'OpenFileDialog1.ValidateNames = True ' ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する If ofd.ShowDialog() = DialogResult.OK Then If pMultiselect Then '複数選択の場合 Dim strResult As String = "" For Each nFileName As String In ofd.FileNames strResult = strResult & "," & ofd.FileName Next nFileName OpenFileName = strResult Else OpenFileName = ofd.FileName End If Else 'キャンセルの時 OpenFileName = "" End If ofd.Dispose() End Function
「名前をつけて保存」ダイアログボックスの表示
めも
''' <summary> ''' 「名前をつけて保存」ダイアログボックスの表示 ''' </summary> ''' <param name="pFileName">初期値ファイル名</param> ''' <param name="pDirectory">初期値フォルダ</param> ''' <param name="pFilter">[ファイルの種類]に表示される選択肢</param> ''' <param name="pFilterIndex"></param> ''' <param name="pTitle">タイトル</param> ''' <returns>選択したファイルのフルパス</returns> Public Function SaveFileName(ByVal pFileName As String, Optional ByVal pDirectory As String = "\\tsclient\C\", '"C:\" Optional ByVal pFilter As String = "CSVファイル(*.csv)|*.csv;|すべてのファイル(*.*)|*.*", Optional ByVal pFilterIndex As Integer = 1, Optional ByVal pTitle As String = "保存先のファイルを選択してください") As String 'SaveFileDialogクラスのインスタンスを作成 Dim sfd As New SaveFileDialog() '初期値ファイル名 sfd.FileName = pFileName '初期値フォルダ sfd.InitialDirectory = pDirectory '[ファイルの種類]に表示される選択肢 sfd.Filter = pFilter sfd.FilterIndex = pFilterIndex 'タイトルを設定する sfd.Title = pTitle 'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする sfd.RestoreDirectory = True '既に存在するファイル名を指定したとき警告する sfd.OverwritePrompt = True '存在しないパスが指定されたとき警告を表示する sfd.CheckPathExists = True 'ダイアログを表示する If sfd.ShowDialog() = DialogResult.OK Then 'OKボタンがクリックされたとき、選択されたファイル名を取得する SaveFileName = sfd.FileName Else 'キャンセルのとき SaveFileName = "" End If End Function
指定した名前の列がデータテーブルに含まれるかの確認
メモ
DataColumnCollection.Contains メソッド (String) (System.Data)
''' <summary> ''' 指定した名前の列がデータテーブルに含まれるかの確認 ''' </summary> ''' <param name="pColName">列名</param> ''' <param name="pTable">データテーブル</param> ''' <returns>存在する:True / 存在しない:False</returns> Public Function dtColumnExist(pColName As String, pTable As DataTable) As Boolean Dim Col As DataColumnCollection = pTable.Columns If Col.Contains(pColName) Then Return True Else Return False End If End Function
<SQL> Lag関数
SQLServer2012以降
同じ結果セットの前の行からデータにアクセスする。
現在の行の値と前の行の値を比較できる。
やりたいことは、
年月毎に持っているデータで、当月金額と前月金額を表示したい。
前月金額は先月のデータの当月金額を表示したい。
内部結合で考えていたけど、Lag関数というのがあるらしいので調べてみた。
LAG (scalar_expression [,offset] [,default]) OVER ( [ partition_by_clause ] order_by_clause )
LAG (Transact-SQL) | Microsoft Docs
SELECT 年月日,部門CD,当月仕掛,lag(当月仕掛,1,0) over(partition by 部門CD order by 年月日) as 前月仕掛 FROM Table1
すっきりしていいんだけど、途中のデータが抜けた場合に困るかも。
2018年06月の次に2018年08月のデータが入った場合、6月データ見にいくみたい。
なのでやっぱり内部結合でダラダラ書こうかな。
With MM As ( SELECT [部門CD] as '部門CD',[部門名] as '部門名' FROM TableBMN ) SELECT MM.[部門CD],MM.[部門名],TBL2.前月仕掛,Tbl.* FROM MM LEFT OUTER JOIN (SELECT * FROM Table1 WHERE left([年月日],6)='201807') as Tbl ON MM.[部門CD] = tbl.[部門CD] LEFT OUTER JOIN (SELECT 部門CD,前月仕掛 FROM Table1 WHERE left([年月日],6)='201806') as Tbl2 ON MM.[部門CD] = Tbl2.[部門CD]
年月はパラメータで渡す、と。
はてなブログでソースコード
ソースコードをブログの中に埋め込む方法
まず、編集方法は「はてな記法」にする。
「>||」「||<」
これで囲むと枠が出る。
http://hatenablog.com/
おぉ。
>|vb| ・・・ソースコード ||<
VBでいいのかな。
Private Sub setColReadOnly() For Each Col As KeyValuePair(Of Tuple(Of Integer, String, Boolean, Boolean, String), String) In dcColumns dgv.Columns(Col.Key.Item2).ReadOnly = Col.Key.Item3 Next End Sub
おぉ。