■閉鎖した昔のブログの記事復活
[2025/05/11] PostgreSQLのバックアップ (No.397)
[2025/05/11] VB.NET:USBメモリーの存在確認の方法 (No.396)
[2025/05/11] フリーのC#開発環境SharpDevelopを使って、C#ソースをVBに変換 (No.395)
[2025/05/11] 【自営業者ネタ】預金金利の勘定科目は何? (No.394)
[2025/05/11] Oracle:ORA-28001 the password has expiredでユーザに接続不可 (No.393)
[2025/05/11] VB.NET:USBメモリーの存在確認の方法 (No.396)
[2025/05/11] フリーのC#開発環境SharpDevelopを使って、C#ソースをVBに変換 (No.395)
[2025/05/11] 【自営業者ネタ】預金金利の勘定科目は何? (No.394)
[2025/05/11] Oracle:ORA-28001 the password has expiredでユーザに接続不可 (No.393)
-
データベースは日々データに変化が発生しますので、毎日ある時点で定期的にバックアップする必要が出てきます。
バックアップ・リストアは pgAdmin を使えば簡単にできます。 しかし、定期的なバックアップ作業はバッチ処理とし、サーバのスケジューラで起動することが一般的だと思います。
Windows上のPostgreSQLのバックアップについて、コマンドプロンプトから行う方法を説明します。 尚、このコマンドはPostgreSQLサーバーの稼動しているマシンで実行することが前提になります。
■全データベースのバックアップ
pg_dump --format=t --file=bakup.dmp --username=postgres test
対象となるデータベースは test で、出力されるファイル名を bakup.dmp とし、ファイル形式はテキストで生成します。
データベースへのユーザ名は postgres で、これはPostgreSQLを最初に導入したときのAdminのユーザです。 このコマンドにはパスワードの指定がありませんが、pgAdminでログインし、パスワードの保存をしてあれば指定が必要ありません。
(エディタで %APPDATA%\postgresql\pgpass.conf にパスワードを登録してもOKです)
pg_dumpのコマンドですが、「pg_dump --HELP」と指定すれば、コマンドの一覧が表示されます。 多くのコマンドが表示されますが、中で使用すると言えば、テーブルの指定ぐらいでしょうか。 ■データベースの内のあるテーブルのバックアップ
pg_dump --format=t --file=bakup.dmp --username=postgres --table=table1 test
全データベースのバックアップに --table=table1 のコマンドを付加し table1 のテーブルをバックアップします。
=====
2015/04/27:の時の情報
PR -
USBメモリーの存在確認を行うために、 PCのハードウェア情報の取得をWMI(Windows Management Instrumentation)を使います。
ManagementObjectSearcherクラスを使って、WMIの情報を取得します。
WMIにはいろいろな情報を持っていますが、それを取得するための言語WQL(WMI Query Language)を使って取得します。
SQL言語のような記述で、以下のソースの中では
「SELECT * FROM Win32_DiskDrive where InterfaceType='USB'」
の部分です。
ManagementObjectSearcherクラスのコンストラクタの第1引数のスコープの指定で、"root\cimv2"と設定します。
この"root\cimv2"はシステム管理者にとって関心のあるWMIクラスのほとんどが格納されているそうです。
(cimv2とはCommon Information Model Version 2 というらしい)
さてSELECT文の中のWin32_DiskDriveですが、 Win32_DiskDriveクラスは、Win32 オペレーティング システムを 実行しているコンピューターで見ることができる物理ディスクドライブを表すそうです。
InterfaceTypeには以下の種類があります。
・SCSI
・HDC
・IDE
・USB
・1394
この中の”USB”を指定します。
'''
尚、上記のプログラムをテストする場合に、プロジェクトの中の参照設定にSystem.Management.dllを追加する必要があります。''' USBメモリの存在チェック ''' ''' <param name="strPNPDeviceID">USBメモリのPNPDeviceID文字列</param> ''' <param name="lst">USB機器を列挙情報</param> '''True:存在する、False:存在しない Public Function CheckExistUSB(ByVal strPNPDeviceID As String, _ Optional ByRef lst As Hashtable() = Nothing) As Boolean '戻り値初期化 CheckExistUSB = False 'USBメモリの存在チェック処理 Try 'WMI(Windows Management Instrumentation)を利用してUSBの情報を取得 Dim searcher As New System.Management.ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_DiskDrive where InterfaceType='USB'") '全てのUSB機器を列挙 For Each queryObj As System.Management.ManagementObject In searcher.Get() Dim s As String = "" If Not lst Is Nothing Then 'USB機器の情報をHashtableに格納 Dim hash As New Hashtable hash.Add("Caption", queryObj("Caption")) hash.Add("DeviceID", queryObj("DeviceID")) hash.Add("PNPDeviceID", queryObj("PNPDeviceID")) 'Hashtableの配列に格納 Dim i As Integer = LBound(lst) If Not lst(0) Is Nothing Then i += 1 ReDim Preserve lst(i) End If lst(i) = hash End If '指定のPNPDeviceIDが等しいかチェック If queryObj("PNPDeviceID") = strPNPDeviceID Then '指定のUSBメモリが見つかった CheckExistUSB = True Exit For End If Next Catch ex As System.Management.ManagementException MsgBox("WMI Error: " & ex.Message, MsgBoxStyle.Critical) End Try End Function '''''' USBをチェックするためのボタンClickイベント ''' Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click 'USB機器を列挙情報用のHashtable設定 Dim lst As Hashtable() ReDim lst(0) 'USBメモリの存在チェック(USB機器を列挙) Me.CheckExistUSB("", lst) 'USB機器を列挙 Dim str As String = "" For i As Integer = 0 To UBound(lst) If i > 0 Then str += vbCr For Each col As System.Collections.DictionaryEntry In lst(i) str &= col.Key & " : " & col.Value & vbCr Next Next MsgBox(str) End Sub
=====
2015/04/16:の時の情報
-
C#で作成されたシステムをVB.NETに変換したいことはよく発生します。
WEB上でC#のソースをVB.NETなどに変換してくれるサイトは存在するのですが、 もっと良いものがないかと探してみました。
フリーのソフトで SharpDevelop というC#の開発環境がありました。
これ自体でWindowsFormのアプリケーションを作ることができます。
SharpDevelop
http://www.icsharpcode.net/OpenSource/SD/Default.aspx
これをインストールして動作させてみました。
ダウンロードは以下のURLから「Downloads for SharpDevelop 4.4 」をダウンロードしました。
http://www.icsharpcode.net/OpenSource/SD/Download/
インストールは表示される内容に従って行えば特に問題なく終わります。
以下はSharpDevelopを最初に起動した画面です。
とあるc#のソリューションを読込ませます。
(このソースはあるサイトのオープンソースのものです)
メインメニューの中から以下の操作をします。
[File] ⇒ [Open] ⇒ [Project/Solution... Ctrl+Shift+O]
ソリューションが読込まれた様子がわかります。
そこで、ソリューション全体をVB.NETに変換してみます。
メインメニューの中から以下の操作をします。
[Project] ⇒ [Convert] ⇒ [From C# to VB.NET]
C#のソリューション名が「Socktes」なのでVB.NETの方は「Socktes.Converted」となり、ソースは全て「cs」から「vb」に変わったことが分かります。
1個のC#ソースをVB.NETに変換したい場合は、1個のソースファイルを選択状態にしておいてメインメニューの中から以下の操作をします。
[Tools] ⇒ [Convert code to] ⇒ [VB.NET]
「Generated.vb」というタブが生成されますので、この中身をコピーして別のところにでも貼り付ければOKです。
=====
2015/04/15:の時の情報
-
預金通帳をみると「お利息」という入金がありました。
この利息ですが、会計処理ではどの様に扱うのか?
私は自営業者なので、預金金利の勘定科目は「事業主借」としています。
なのですが、この利息そのものには既に分離課税として20%分が差し引かれています。
これを小口現金の収入換算して所得税の計算に参入すると二重課税になりますし...
ところで、二重課税といえばガソリンがあります。
ガソリン代として半分ぐらいガソリン税が占め、更にその金額に消費税が加わります。
これ何とかならないのでしょうか?
ガソリン税が導入されたのは1970年代かの田中角栄さんの時に導入されたと思います。
道路をいっぱい作る関係から導入したそうですが、これが無くなればガソリンも安くなるのですが。
さて、「利息」の話に戻しますが普通の会社では、相手勘定は「受取利息」として処理すればよい様です。
=====
2015/03/18:の時の情報
-
久々にOracleを動かそうとして、Oracle SQL Developerを起動し、データベースに接続すると接続エラーが発生しました。
エラーメッセージはORA-28001 the password has expired.
どうもパスワードの期限が切れているようです。
調べてみるとOracle11gではデフォルトでユーザのパスワードの期限が180日になっているそうです。
テストで動かすだけなので、SYSユーザでログインして、ユーザのパスワードを以下のコマンドで変更しました。
alter user 「USERNAME」 identified by 「PASSWORD」;
その後、以下のコマンドでロックを解除します。
alter user 「USERNAME」 account unlock;
これで、接続できるようになりました。
ただ「SQL*Plus」での接続では以下の図のようにエラーが表示されますが、
その後、新規パスワードの入力が促され、そこでパスワードを入力しなおせば再度接続されます。
SIDとしてはテスト用のDB「test」で、ユーザもテスト用のID/PASSを「test/test」して行いました。
オラクルサーバーへの接続文字列としては、@マーク以下「//192.168.1.207/」を頭に付けてローカルなLANのサーバマシンのIPを特定しています。
=====
2015/03/26:の時の情報