SQLServerのインストールと郵便番号データのインポート

ファイヤーウォールのポート開放

コントロールパネルでファイアーウォールを検索
WindowsDefenderファイアウォールの詳細設定を表示
新しい規則で次のポートを開放
TCP 1433
UDP 1434
規則の名前はMSSqlserverとでもしておく

■SQLServer2017のインストール

コンピューターの管理のサービスとアプリケーションで
SQL構成マネージャーのネットワーク構成でプロトコルの名前付きパイプを有効にする
(ネットワーク越しに使用する場合はTCP/IPも有効にする)

■郵便局のページ

http://www.post.japanpost.jp/zipcode/download.html
から必要な郵便番号データをダウンロードする
(読み仮名データの促音・拗音を小書きで表記するものの全国一括)
ken_all.zipを解凍し別名KEN_ALL(更新日付とか).CSVにする

■MSSMSでデータベースを作成

ここではKEN_ALL

■MSSMSでテーブルを作成(テーブル名もKEN_ALL)

USE [KEN_ALL]
GO
/****** Object:  Table [dbo].[KEN_ALL]    Script Date: 2018/03/18 13:31:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[KEN_ALL](
 [cord] [varchar](100) NULL,
 [zip5] [varchar](100) NULL,
 [zip] [varchar](100) NULL,
 [todofukenkana] [varchar](100) NULL,
 [sikuchosonkana] [varchar](100) NULL,
 [choikikana] [varchar](100) NULL,
 [todofuken] [varchar](100) NULL,
 [sikuchoson] [varchar](100) NULL,
 [choiki] [varchar](100) NULL,
 [a] [varchar](1) NULL,
 [b] [varchar](1) NULL,
 [c] [varchar](1) NULL,
 [d] [varchar](1) NULL,
 [e] [varchar](1) NULL,
 [f] [varchar](1) NULL
) ON [PRIMARY]
GO

■管理者権限のコマンドプロンプトBCPでKEN_ALL(更新日付とか).CSVインポートする

>bcp KEN_ALL in c:\フォルダーパス\KEN_ALL().CSV -S <Server Name> -d KEN_ALL -U <Username> -P <password> -q -c -t,

コマンドオプションの説明

  • S サーバー名を指定します。省略した場合、既定のサーバーになります。
  • T 統合認証を使ってログインします。この場合ユーザー名、パスワードは必要ありません。
  • q 空白や単一引用符を含むデータベース名を指定するには、-q オプションを使用する必要があります。
  • c 文字データ型を使用して操作を実行します。 このオプションを使用すると、フィールドごとにプロンプトが表示されません。 char をプレフィックスなしのストレージ型として、また \t (タブ) をフィールド区切り文字、 \r\n (改行文字) を行ターミネータとして使用します。 -c は -w と互換性がありません。
  • t フィールド ターミネータを指定します。 既定値は \t (タブ文字) です。 既定のフィールド ターミネータを無効にする場合、このパラメーターを使用します。 詳細については、「フィールド ターミネータと行ターミネータの指定 (SQL Server)」をご覧ください。

bcp.exe コマンドでは、フィールド ターミネータを 16 進数表記で指定すると、値が 0x00 で切り捨てられます。 たとえば、0x410041 を指定した場合、使用されるのは 0x41 になります。
field_term がハイフン (-) またはスラッシュ (/) で始まる場合は、 -t と field_term 値の間に空白を入れないでください。

■sqlcmdで確認する

>sqlcmd -S <Server Name> -d KEN_ALL -U <Username> -P <Password> -Q "select + from KEN_ALL;"

SQLServer2017に PubsとNorthWindデータベースのインストール

Northwind and pubs Sample Databases for SQL Server 2000 をダウンロード

https://www.microsoft.com/en-us/download/details.aspx?id=23654

■解凍してinstnwnd.sqlとinstpubs.sqlの一部を書き換える

(C:\SQL Server 2000 Sample Databasesに解凍)

○instnwnd.sql

/*
exec sp_dboption 'Northwind','trunc. log on chkpt.','true'
exec sp_dboption 'Northwind','select into/bulkcopy','true'
*/
alter database Northwind set recovery simple

○instpubs.sql

/*
execute sp_dboption 'pubs' ,'trunc. log on chkpt.' ,'true'
*/
alter database pubs  set recovery simple

■sqlcmdでデータベースをインストールする

BATファイルを作って実行する

Windows認証の場合

@echo off
cd C:\SQL Server 2000 Sample Databases
sqlcmd -S (コンピューター名)\(インスタンス名) -i instpubs.sql
sqlcmd -S (コンピューター名)\(インスタンス名) -i instnwnd.sql

SQL Server認証の場合

@echo off
cd C:\SQL Server 2000 Sample Databases
sqlcmd -S (コンピューター名)\(インスタンス名) -U (ユーザ名) -P (パスワード) -i instpubs.sql
sqlcmd -S (コンピューター名)\(インスタンス名) -U (ユーザ名) -P (パスワード) -i instnwnd.sql

コンピューター名は標準ならHOME、そのあと\を挟んでインスタンス名を入れます
(ここではSQLExpressになってます)

■作ったBATファイルをコマンドプロンプトで実行する

■データベースができたか確認する

コマンドプロンプトに次のコマンドを実行する

sqlcmd -S (コンピューター名)\(インスタンス名) -U (ユーザ名) -P (パスワード) -Q "select name,create_date from sys.databases;"

一覧の中にpubsとNorthwindがあれば成功です

【R言語】 RODBCパッケージを使ったSQLServer接続

■RODBCパッケージをインストール

しかし、RGuiのパッケージメニューからインストールしたほうが良い感じ(ヘルプなどがインストールされる)

> install.packages("RODBC")

■インストールされたかを確認する

> library()

※コンソールとは別にウィンドウが開き一覧が表示される

■RODBCを使うことを宣言

> library(RODBC)

ODBCデータソースを使う場合

> db=odbcConnect("SQLServerHOME")
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

※データソースを作るにはコントロールパネル→システムとセキュリティ→管理ツールを選択
 ODBCデータソースをダブルクリックしてODBCデータソースアドミニストレーターを表示
 ユーザーDNSで追加してドライバーを選択(SQLServer)して完了を押す
 データソースの作成になるので任意のデータソース名と接続するSQLServerを選択(説明は省略可)

ODBCドライバーで直接接続する場合(既定のデータベース、Windows認証で接続)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME;database=R;trusted_connection=true')
> db
RODBC Connection 3
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=R
> ds=sqlQuery(db,"select top 100 * from dbo.R_PackageList")
> ds

ODBCドライバーで直接接続する場合(インスタンス名付きのデータベース、Windows認証で接続)

>  db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;trusted_connection=true')
> db
RODBC Connection 8
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=owner
  Trusted_Connection=Yes
  WSID=HOME
  DATABASE=KEN_ALL
> ds=sqlQuery(db,"select top 100 * from dbo.KEN_ALL")

ODBCドライバーで直接接続する場合(SQLServer認証)

> db<- odbcDriverConnect('driver={SQL Server};server=HOME\\MSSQLSERVER2017;database=KEN_ALL;UID=sa;PWD=パスワード')
> db
RODBC Connection 9
Details:
  case=nochange
  DRIVER=SQL Server
  SERVER=HOME\MSSQLSERVER2017
  UID=sa
  PWD=******
  WSID=HOME
  DATABASE=KEN_ALL

インスタンス付きサーバー名を指定する場合、\\で接続する必要がある(通常は\一つ)。
 これはR Consoleの"\"を表現する場合には"\\"にしなければならない規定がある
 ファイルパスの接続文字でも同様の事が言える
 C:\temp\test.xlsを指定する場合にはC:/temp/test.xlsとするかC:\\temp\\test.xlsとしなければならない

■その他AccessExcelに接続する場合

odbcConnectAccess(access.file, uid = "", pwd = "", ...)
odbcConnectAccess2007(access.file, uid = "", pwd = "", ...)
odbcConnectExcel(xls.file, readOnly = TRUE, ...)
odbcConnectExcel2007(xls.file, readOnly = TRUE, ...)

■パッケージのアンロード

> detach("package:RODBC")

■パッケージのアンインストール

> remove.pakages("RODBC")

※再インストールするにはRGuiを再起動する必要がある

【Visual Basic】タブレットモードのタッチキーパッド(TabTip)のコントロール

■TabTip起動時

Process.Start("c:\program files\common files\microsoft shared\ink\tabtip.exe")

■TabTipを閉じる時

'宣言

Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr

'閉じたいイベントで

Dim hWnd As IntPtr = FindWindow("IPTip_Main_Window", vbNullString)
If hWnd <> IntPtr.Zero Then PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0)

XAMPP WebアプリケーションDrupalインストール時の注意

XAMPPをWindows付属のIISと共存させるにはApacheのhttp.confのListen 80→Listen 8080、ServerName localhost:80→ServerName localhost:8080に変更する。
ApacheのWebサーバーを呼び出すURLはhttp:localhost:8080になる。

開発環境

WebSever統合アプリケーション

〇XAMMP for Windows7.2.3
C:\XAMPP\xampp-control.exe3.2.2.0
https://www.apachefriends.org/jp/index.html
◆Webサーバー
Apache 2.4.34
C:\xampp\apache\bin\httpd.exe2.4.34
◆データベースサーバー
MariaDB(MySQL)10.1.36
C:\xampp\mysql\bin\mysql.exe10.1.36
CGI(Common gatewayInterface)
PHP 7.2.10
C:\xampp\php\php.exe7.2.10
Perl 8.38 2015-11-23
C:\xampp\perl\bin\perl5.16.3.exe
Tomcat 1.0.15.0
C:\xampp\tomcat\bin\tomcat7w.exe1.0.15.0
Apach付属のJSP(JavaServerPages)サーブレット[Java Servlet]
〇Drupal8.6.1
https://www.drupal.org/download
Drupalのインストールには時間がかかる為、既定のPHP実行制限時間では足りないので次の設定を変更する。C:\xampp\php\php.iniのmax_execution_time=30→max_execution_time=300に変更しておく。
ApacheWebサーバーのphpMyAdminにアクセスし空のDrupal用データベースを作成する。
Drupalをインストールしたフォルダにブラウザからアクセスする。インストールが始まるので指示される手順に沿って行う。インストールには30分前後かかる。

ADODB.StreamのCharsetプロパティに設定できる値

ADODB.StreamのCharsetプロパティに設定できる値

○Charsetプロパティ
セットできる値は
HKEY_CLASSES_ROOT\MIME\Database\Charset
のサブキー一覧の中から選択できます

TypeプロパティがadTypeText=2の時に機能します

※Charsetを列挙する方法

①PwerShellを使う

PS>get-rsdrive

でhkclがドライブとして認識されているか確認します

一覧に無ければ
下記コマンドでPowerShell ドライブとして登録します

PS>New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT

登録を削除するには以下のコマンドを使います

PS>Remove-PSDrive -Name HKCR -PSProvider Registry

HKEY_CLASSES_ROOT\MIME\Database\Charsetのフォルダに移動します

PS>cd hkcr:\MIME\Database\Charset

一覧を表示します

PS>ls または PS>dir または PS>gci

パイプを使って一覧をファイルに出力します

PS>ls | C:\test\Charset.txt

②vbs[WSH]を使う

以下のコードを使う

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const REG_SZ        = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY    = 3
Const REG_DWORD     = 4
Const REG_MULTI_SZ  = 7
Dim strComputer,hDefKey,strKeyPath
strComputer = "." ' Use . for current machine
hDefKey = HKEY_CLASSES_ROOT
strKeyPath = "MIME\Database\Charset"
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
oReg.EnumKey hDefKey, strKeyPath, arrSubKeys
Dim oFs,oTs
Set oFs = CreateObject("Scripting.FileSystemObject")
Set oTs = oFs.CreateTextFile(oFs.getParentFolderName(WScript.ScriptFullName) & "\CharsetReg.txt", True)
For Each strSubkey In arrSubKeys
 oTs.WriteLine(strSubkey)
Next
oTs.Close

得られた一覧は次の通り

ANSI_X3.4-1968
ANSI_X3.4-1986
arabic
ascii
ASMO-708
Big5
chinese
CN-GB
cp1256
cp367
cp819
cp852
cp866
csASCII
csbig5
csEUCKR
csEUCPkdFmtJapanese
csGB2312
csISO2022JP
csISO2022KR
csISO58GB231280
csISOLatin1
csISOLatin2
csISOLatin4
csISOLatin5
csISOLatinArabic
csISOLatinCyrillic
csISOLatinGreek
csISOLatinHebrew
csKOI8R
csKSC56011987
csShiftJIS
csUnicode11UTF7
csWindows31J
cyrillic
DOS-720
DOS-862
DOS-874
ECMA-114
ECMA-118
ELOT_928
euc-jp
euc-kr
Extended_UNIX_Code_Packed_Format_for_Japanese
GB2312
GBK
GB_2312-80
greek
greek8
hebrew
hz-gb-2312
IBM367
ibm819
ibm852
ibm866
iso-2022-jp
iso-2022-kr
iso-8859-1
iso-8859-11
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
ISO-8859-8 Visual
iso-8859-8-i
iso-8859-9
iso-ir-100
iso-ir-101
iso-ir-110
iso-ir-111
iso-ir-126
iso-ir-127
iso-ir-138
iso-ir-144
iso-ir-148
iso-ir-149
iso-ir-58
iso-ir-6
ISO646-US
iso8859-1
iso8859-2
ISO_646.irv:1991
iso_8859-1
iso_8859-1:1987
iso_8859-2
iso_8859-2:1987
ISO_8859-4
ISO_8859-4:1988
ISO_8859-5
ISO_8859-5:1988
ISO_8859-6
ISO_8859-6:1987
ISO_8859-7
ISO_8859-7:1987
ISO_8859-8
ISO_8859-8:1988
ISO_8859-9
ISO_8859-9:1989
koi
koi8-r
koi8-ru
korean
KSC5601
KSC_5601
ks_c_5601
ks_c_5601-1987
ks_c_5601-1989
l1
l2
l4
l5
latin1
latin2
latin4
latin5
logical
ms_Kanji
shift-jis
shift_jis
unicode
unicode-1-1-utf-7
unicode-1-1-utf-8
unicode-2-0-utf-8
unicodeFFFE
us
us-ascii
utf-7
utf-8
visual
windows-1250
windows-1251
windows-1252
windows-1253
Windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
windows-874
x-ansi
x-cp1250
x-cp1251
x-euc
x-euc-jp
x-ms-cp932
x-sjis
x-unicode-2-0-utf-7
x-unicode-2-0-utf-8
x-user-defined
x-x-big5
_autodetect
_autodetect_all
_autodetect_kr
_iso-2022-jp$ESC
_iso-2022-jp$SIO

【PowerShell】コマンドの短縮名(エイリアス)逆引きリスト

PowerShellコマンドの短縮名(エイリアス)逆引きリストです

一覧は

PS>Get-Item Alias:

で取得することができます

CSV形式にしておいたのでたの表計算ソフトなどで取り込んで検索したりできます

PowerShellのGridViewに表示する場合は以下のコマンドが便利です

PS>ipcsv csvファイル名 -en oem -header "Alias","Name" | ogv
%,Foreach-Object
?,Where-Object
ac,Add-Content
asnp,Add-PSSnpin
cat,Get-Content
cd,Set-Location
cfs,ConvertFrom-String
chdir,Set-Location
clc,Clear-Content
clear,Clear-Host
clhy,Clear-History
cli,Clear-Item
clp,Clear-ItemProperty
cpp,Copy-ItemProperty
cls,Clear-Host
clv,Clear-Variable
cnsn,Connect-PSSession
compare,Compare-Object
copy,Copy-Item
cp,Copy-Item
cpi,Copy-Item
cpp,Copy-ItemProperty
curl,Invoke-WebRequest
cvpa,Convert-Path
dbp,Disable-PSBreakpoint
del,Remove-Item
diff,Compare-Object
dir,Get-ChildItem
dnsn,Disconnect-PSSession
ebp,Enable-PSBreakpoint
echo,Write-Output
epal,Export-Alias
epcsv,Export-Csv
epsn,Export-PSSession
erase,Remove-Item
etsn,Enter-PSSession
exsn,Exit-PSSession
fc,Format-Custom
fhx,Format-Hex
fl,Format-List
foreach,Foreach-Object
ft,Format-Table
fw,Format-Wide
gal,Get-Alias
gbp,Get-PSBreakpoint
gc,Get-Content
gcb,Get-Clipboard
gci,Get-ChildItem
gcim,Get-CimInstance
gcm,Get-Command
gcs,Get-PSCallStack
gdr,Get-PSDrive
ghy,Get-History
gi,Get-Item
gin,Get-ComputerInfo
gjb,Get-Job
gl,Get-Location
gm,Get-Member
gmo,Get-Module
gp,Get-ItemProperty
gps,Get-Process
gpv,Get-ItemPropertyValue
group,Group-Object
gsn,Get-PSSession
gsnp,Get-PSSnapin
gsv,Get-Service
gtz,Get-TimeZone
gu,Get-Unique
gv,Get-Variable
gwmi,Get-WmiObject
h,Get-History
history,Get-History
icm,Invoke-Command
iex,Invoke-Expression
ihy,Invoke-History
ii,Invoke-Item
ipal,Import-Alias
ipcsv,Import-Csv
ipmo,Import-Module
ipsn,Import-PSSession
irm,Invoke-RestMethod
ise,powershell_ise.exe
iwmi,Invoke-WmiMethod
iwr,Invoke-WebRequest
kill,Stop-Process
lp,Out-Printer
ls,Get-ChildItem
man,help
md,mkdir
measure,Measure-Object
mi,Move-Item
mount,New-PSDrive
move,Move-Item
mp,Move-ItemProperty
mv,Move-Item
nal,New-Alias
ndr,New-PSDrive
nmo,New-Module
npssc,New-PSSessionConfiguretionFile
nsn,New-PSSession
nv,New-Variable
ogv,Out-GridView
oh,Out-Host
popd,Pop-Location
ps,Get-Process
pushd,Push-Location
pwd,Get-Location
r,Invoke-History
rbp,Remove-PSbreakpoint
rcjb,Receive-Job
rcsn,Receive-PSSession
rd,Remove-Item
rdr,Remove-PSDrive
ren,Rename-Item
rjb,Remove-Job
rm,Remove-Item
rmo,Remove-Module
rni,Rename-Item
rnp,Rename-ItemProperty
rp,Rename-ItemProperty
rsn,Remove-PSSession
rsnp,Remove-PSSnapin
rujb,Resume-Job
rv,Remove-Variable
rvpa,Resolve-Path
rwmi,Remove-WmiInstance
sajb,Start-Job
sal,Set-Alias
saps,Start-Process
sasv,Start-Service
sbp,Set-PSBreakpoint
sc,Set-Content
scb,Set-Clipboard
select,Select-Object
set,Set-Variable
shcm,Show-Command
si,Set-Item
sl,Set-Location
sleep,Start-Sleep
sls,Select-String
sort,Sort-Object
sp,Set-ItemProperty
spjb,Stop-Job
spps,Stop-Process
spsv,Stop-Service
start,Start-Process
sujb,Suspend-Job
sv,Set-Variable
stz,Set-TimeZone
swmi,Set-WmiInstance
tee,Tee-Object
trcm,Trace-Command
type,Get-Content
wget,Invoke-WebRequest
where,Where-Object
wjb,Wait-Job
write,Write-Output