SQLSERVER 物理ファイルを移動する(mdf、ldf)
SQL SERVERで運用中のデータベースの物理ファイルを移動させようと思うと、
デタッチ⇒アタッチで可能ですが、ログだけ別のドライブに分けたいといった場合に、GUIからは
操作できません。
※プロパティのファイルのパスは編集不可です。
次のSQLでパスを書き換えます。
ALTER DATABASE sample/*データベース名*/ MODIFY FILE( 'sample_log'/*ファイル名*/ ,'E:\ldf\sample_log.ldf'/*ファイルパス*/ ); /*SQLSERVER再起動後に反映される旨のログが出ます*/
この後、以下の手順でファイルを移動します。
パスを書き換えた後、データの書き込みを行っても問題ありません。
ファイル名、パスなどの情報は以下のシステムテーブルより参照できます。
SELECT * FROM sys.database_files
ASPでExcelを編集する(ADO)
ASPからExcelを編集するとなると、値段の張るExcelCreatorなんかでゴリゴリ編集コードを書く、なんてことになりますが、
単純にデータを落とすぐらいなら、ADOでできるとのこと。
やり方
DBからデータを取得するのと同じ要領です。
'DBに接続するのと同じく、ConnectionとRecordsetを用意 Set conExl = Server.CreateObject("ADODB.Connection") Set rsExl = Server.CreateObject("ADODB.Recordset") 'Excelへの接続文字列 conExl.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\home\myexcel.xlsx;Extended Properties=""Excel 8.0;""" '編集したいセルをSELECT rsExl.Open "SELECT * FROM [SHEET$B1:B13]", conExl, 3, 2 While Not rsExl.EOF '値を入れて、Update rsExl.Fields(0).Value = m_strTenpoTel rsExl.Update rsExl.MoveNext Wend rsExl.Close conExl.Close
こんなに簡単にできるならもっと早く言ってほしいです。。
Node.js on Windows 手始め
node.jsやってみました。
そもそもどう起動する?
IIS、Apacheではサーバを起動して、指定したルートディレクトリのファイルにリクエストを投げることで応答が返ってきますが
、node.jsも同じです。
入門記事を見ていると、以下のようなserver.listen(ポート番号)でOKというのがまずはじめに出てきます。
var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.write('Hello '); response.end('World\n'); }).listen(8124); //このポートでアクセスしてきたやつに「Hello World」って言ってやる! console.log('Server running at http://127.0.0.1:8124/');
どこでどうやって?と思っていましたが、コマンドラインからnode.exeの引数に
上記の内容を保存したjsファイルを指定して実行するだけで、サーバーが起動した状態となります。
node c:\node\hello.js
止める時は「Ctrl + C」です。
ブラウザからhttp://127.0.0.1:8124/にアクセスすると、Hello World!!と表示されます。
npm
モジュールのインストールに使うnpm。
node.jsのインストール時にパスも通っているので、単に
npm install socket.io
という感じでコマンドを叩くだけです。
iPhone 画面に何も映らなくなって、あせる気持ちを落ち着かせる方法
突然でした
iPhoneを見てみると、画面に何も映りません。
ホームボタンを押してもだめ、電源ボタンを押してもだめ。
サウンド オン/オフを切り替えると反応はあったので、生きてることは生きてるようです。。
修理に出さなくちゃ
・・・と思って焦っていたのですが、ちょっと調べてみると同じ現象の人が見つかりました。
再起動すればいいとのこと。
手順
- ホームボタンと電源ボタン(スリープボタン)を10秒間長押し
- 待ちます
直りましたよ!!
iOS6へアップデートかけたまま放置していて、どうなったかと思えば
何も映らなくなっていて、やばいな修理なんて・・・保障どうだったかな〜と
とにかく焦っておりました。
その他参考サイト
iPhone本体 各名称
思ってたのと違う名前です。。
jQuery Templates テンプレートエンジン の使い方
サーバ側でhtmlまで生成していたのですが、JSONデータのみにして軽量化したいのですが、
クライアント側でDOM組み立てる処理を書くのはちょっとやってられないので、テンプレートエンジンを探していました。
JSテンプレートエンジンについてググってみたところ、さまざまなものがあるようですが、
jQueryでもプラグインがあるようなので、手始めにこれでやってみました。
本家:jQuery - Templates
参考:jQuery公式のテンプレートplugin 「jQuery Templates」
- テンプレート(html側)
<ul id="movieList"></ul> <script id="movieTemplate" type="text/x-jquery-tmpl"> <li><b>${Name}</b> (${ReleaseYear})</li> </script>
- js
var movies = [ { Name: "The Red Violin", ReleaseYear: "1998" }, { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, { Name: "The Inheritance", ReleaseYear: "1976" } ]; //テンプレートから生成したDOMを対象にappendします $( "#movieTemplate").tmpl(movies).appendTo( "#movieList" )
おー、見たまんま動きます。
${}がJSONのプロパティと置き換わります。
{hoge:"ほげ"} <span>${hoge}<span> ↓ <span>ほげ<span>
それを配列分繰り返します。
もう他のを試さなくても、これで十分すぎました。
クラシックASP BASP21を使わないファイルアップロードについてのまとめ(編集中)
BASP21を使わない方法です。
というのも<input type="file" multiple>で複数のファイルをアップロードしようとしたときに、
BASP21では実現できませんでした。
.Netを使ってひとまずアップロードはできたのですが、以前見たBASP21を使わないコードを思い出して、
参考にして実際にやってみようと思い、今ここです。
ひとまずBASP21を使わないでアップロードする方法をググってみた
Request.BinaryReadで取得したデータをADODB.Streamで保存すればできます、ということでした。
また、以前見たコードというのはここの回答にある、
FCKEditorのファイルアップローダにあるよ!です。
FCKEditorはWYSIWYGエディタを探していたときに触ったことがあり、ファイルアップローダがいくつかの言語
から選べるようになっていて、その中にASP(VBScript)も含まれていました。
FCKEditorはここの一番下です。(退役済み)
http://ckeditor.com/download
今はCKEditorです。
CKEditor
CKEditorではファイル関連はCKFinderとして分離されています。
CKFinder
切り出し方
このアップローダのコードを読んでみると、POSTされたデータからファイルのバイナリ部分を切り出しているのかがわかります。
やっている内容としては、
- POSTデータの中の改行(crlf)を検索
- 最初の改行までが区切り文字(Boundary)
- 次の二連続した改行までがフォームの情報(name属性、ファイル名)
- 次の改行までがファイルのデータ
- これをADODB.Streamでファイルに保存
必要になるもの
vbscriptとして、ここで使うものは主に以下の3つです。
- Request.BinaryRead:POSTデータのバイト配列の読み出し
- ADODB.Stream:ファイルの保存、バイト配列のテキスト変換(.ReadText() )
- InStrB:バイト配列から改行を検索
このコードではファイルへの保存が別メソッドになっていましたが、
データ取得部分をコピーし、とりあえずファイルのデータを切り出したら即保存するようにして、
アップロードを確認できました。
そのほか気になる点など
- 改行探すのはいいけど、<textarea>の改行は大丈夫?
- FormとFileでそれぞれ別の配列(Dictionary)を作っているけど、そもそも1つのフォームから送られるのに受け側で分けてしまうのはなんだかしっくりこないのでFormだけにしたい
multipart/form-dataとboundaryについて
RFC2388
サンプルデータ
-----------------------------41184676334 Content-Disposition: form-data; name="files"; filename="new.txt" Content-Type: text/plain ingredients -----------------------------41184676334 Content-Disposition: form-data; name="files"; filename="bew.png" Content-Type: image/png PNG ��� IHDR��Ú��Ø���ʯ��� pHYs��‹��ŽsDÜ��cìIDATxœìa|”EúÇ·÷Þ³›Þ{#´@è]Š;*rö³\ñîüëwÞÙÑ;Ï *¨‡ôÞ‹„„–„ôžìn²›í½ïÿyw! Rƒóý,áÝ÷wÞyߝò{æ}f†q@ âV@ºÕ @ @ ~½ 9Ž@ @Ü2G @ nHŽ#@ ·$ǁ@ ˆ[’ã@ Ä-Éq@ ▁ä8@ qË@r@ ¸e 9Ž@ @Ü2G -----------------------------41184676334--
ここで、「-----------------------------41184676334」がboundaryです。