TRUNCATE
MySQL:5.5.27
XAMPP:1.8.3
- TRUNCATE TABLE tbl_name;
当該テーブルにリレーションを貼ってあると下記のようなエラーが出る。
こういうときは、リレーションに対するチェック機能を一旦 OFF に。
- SET foreign_key_checks = 0;
- TRUNCATE TABLE table_name;
- SET foreign_key_checks = 1;
当該テーブルにリレーションを貼ってあると下記のようなエラーが出る。
こういうときは、リレーションに対するチェック機能を一旦 OFF に。
多次元配列の階層構造をリスト表示したくて Google 先生へ質問した結果。
時間がないので、参考サイトの中から採用したものをコピペ。
stack overflow:PHP多次元配列から階層リストタグ(略)を出力したい
VB は独特なので、しばらく触らないとすぐ忘れる。。。
確かめずに記憶で書いているので怪しい。
‘ プリミティブ
Dim hoge As String
hoge = “Yeah”
‘ オブジェクト
Dim hoge As Object
Set hoge = Activesheet
… 処理…
Set hoge = nothing ‘ 解放
[/evba]
VBAやVBScriptって、変数宣言と初期化がものっそい面倒なイメージがある。
C#やJavaみたいに「int num = 0;」みたいに書ければいいのに…って思っている方は多いのではないでしょうか?
Black Everyday Company:【VB系】変数の宣言と初期化を1行で書く(VB.NET,VBA,VBScript)
ずぅぅぅぅぅぅぅぅぅっと、そう思ってました!
[evba language=”vb” firstline=”” highlight=””]
Dim foo As Integer: foo = 0
Dim bar As String: bar = “hogehoge”
Dim obj As Object: Set obj = WScript.CreateObject(“WScript.Shell”)
[/evba]
素晴らしい~♪
ありがとうございます!
Excel VBA で 正規表現 を使う時がきた。
これで、下記のように宣言できる。
Dim objRE As New RegExp
参照設定をしない場合は、下記のごとく。
Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "<[^>]*>"
objRE.Global = True
Dim strHoge as String
strHoge = "hoge
"
strHoge = objRE.Replace(strHoge, vbNullString)
Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "\[.*?\]"
objRE.Global = True
Dim strHoge as String
strHoge = "[123]abc[789]xyz"
strHoge = objRE.Replace(strHoge, vbNullString)
書いてみて思った。
やっていることは、HTML タグ除去と同じだw
考えてみれば当然なんだけど
せっかくなので残しておく。
Dim objRE As Object
Set objRE = CreateObject("VBScript.RegExp")
objRE.Pattern = "\[(.*?)\]"
objRE.Global = True
Dim strHoge as String
strHoge = "[123]abc[789]xyz"
strHoge = objRE.execute(strHoge)
If strHoge.Count > 0 Then
Dim index As Integer
For index = 0 To strHoge.Count - 1
MsgBox strHoge(index).SubMatches(0)
Next index
End If
マイナビニュース > パソコン:正規表現を用いてHTTPタグを除去するVBAを記述する
ずっと DB に頼ってばかりで、CSV ファイル出力って、ほとんどしてこなかったので
まとめた記事がなかった。
今では Web サイトは UTF-8 が主流になっているんだろうけど
Excel は、相変わらず Shift-JIS なので
文字コード変換が必要なときもあるでしょう。
試していないので、参考サイトのみ。
Qiita:PHPで連想配列を日本語エンコードしてCSV出力する
SCENE LIVE:【PHP】データをCSVでいい感じにエクスポートする方法
ソース流用にて新システムを構築時に
新規コードをある程度組み、動作確認をした後で
コピーしてきたファイル群から不要ファイルを削除した。
ら!
せっかく書き上げた必要なファイルまで削除してしまった。涙
どうしよう・・・。
Eclipse の プロジェクトエクスプローラツリーから
ファイルを選択し、Delete キーにて削除。
確認画面が出たにも拘らず、OK。。。
ちなみに PHP ファイル。
プロジェクトディレクトリを確認したが
やっぱり、ファイルは全て削除されていた。
仕方がないので、コピー元プロジェクトより元ファイルを再度コピーしてきてリネームし、
再度同一コードを書こうと当該ファイルを Eclipse 上で開いたところ
内容が、削除前のファイル通り!!!
Eclipse のキャッシュ機能かしら~♪
とりあえず、ブラウザにて動作確認。
残念ながら
むむむ。
ひとまず、変更を Eclipse へ伝えるために
当該ファイルの中で任意の一文字を消去して保存。
消去した文字を復旧して保存。
これで無事に動作した♪
ファイルを削除しちゃったときは
すぐに気がついたので、
ブラウザでの動作確認はしていないから
ファイルが削除されたことをブラウザは認識していないはず。
とすると、考えられるのは、Eclipse のキャッシュなのかしらね~。
SoftDelete:日本語版
レコードを削除する際に、本当に削除(物理削除)するのではなく
削除フラグを立てることによって、削除モードにする(論理削除)機能。
ここまで実装方法などについて書いてきましたが、実はこれだけだと動きません。
Doctrineのデフォルトの設定では、Doctrine_Queryを実行前後で修正することが出来なくなっており、そこを設定してあげる必要があります。この設定の方法がsymfony 1.0とsymfony 1.1で変わってきます。symfony 1.1ではProjectConfigurationクラスに設定を記述します。
アシアルブログ:Doctrineで論理削除を意識せずに扱う
OpenPNE3 では、こういう設定を追加する場所が用意されているっぽい。
まだ、成功体験をしていないので、本当にこれでよいかは不明。
カラム名やデータ型を変更したい場合は、下記のように記述すればよいみたい。
Symfony world:Doctrine SoftDelete behavior usage
→この記事のコメント投稿内情報。未検証。
力技でやっている人もいるみたい。
@chisei のはてなブログ:Doctrineの論理削除
このように設定することで、当該テーブルへ deleted_at カラムが追加される
んだけど・・・
公式マニュアル では、delete カラムが追加される、とされている。
データ型も、公式マニュアルでは、TYNYINT とあるけど、実際は DATETIME になる。
バージョンの問題かしらね~。
んで、実際に試してみた。
CSV で、データを突っ込む際に、deleted_at カラムには null を指定しておいたところ
当該カラムの値は 0000-00-00 00:00:00 となった。
文系プログラマによるTIPSブログ:MySQLのload dataで日付型にnullをセットする
こちらの記事がビンゴ!
上記記事では、指定項目がもっといっぱいあったけど
ひとまず、私の今回の環境およびデータでは、上記 SQL にて、
無事に daleted_at カラムへ Null 値を放り込めた。
どうやら第2引数に、データ型に合わせたデフォルト値を設定するみたい。
なので、その他のデータ型は下記の通り。
データ取得を試みたところ
取得データ数は 0 。
SQL の確認 のごとく、発行された SQL 文を確認すると、
ちゃんと WHERE 句が付記されている。
※エイリアスに p を指定しているのに、テーブル名の先頭文字 o をエイリアスにされているが気になるけど。。。
これは、こちらの指定した DQL から Doctrine が SQL を生成する際に、
指定されたテーブルを順番に o1, o2, o3, … と再指定しているためだった。
その o も、恐らく、テーブル名の頭文字を取っていると思われる。
OpenPNE3 の場合、テーブル接頭辞を付けているため
全テーブルが op_ で始まるのよね。
Doctrine が NULL を探しているのに対して、
データ側は ‘0000-00-00 00:00:00’ という値であるため
スルーされていた。
上記 データ挿入→CSV から Null を放り込む方法 を用いて
値を Null にしてやることで、ちゃんとデータを取得できるようになった。
これで一応拾ってくることはできた。
とりあえずはこれでいくしかないけど。。。意味なーい!
いつか解明しなければ。。。
(やっと解明できた)
ちなみにテーブルエイリアスを付けないと、上記記述でも拾ってこない。
必ずエイリアスをつける必要があります。
ただしこれはSELECT限定で、DELETEのときはエイリアスがなくても動くようです。アシアルブログ:Doctrineで論理削除を意識せずに扱う
iG:Syntax Hiliter をカスタマイズ その3。
数日前、WordPress 本体のヴァージョンアップのお知らせがきており、それに合わせて更新したら
iG:Syntax Hiliter も更新のお知らせがきたので、更新してみた。
そうしたら、表示が大分変わってしまった・・・ので、再挑戦~。
独自に設定したショートタグをプラグインに認識させる方法。
このように記述してやることで、独自に設定したショートタグから
にある、各言語ハイライト設定ファイルへと紐付けることができる。
独自に設定したショートタグを任意の文字列にて表示させる方法。
今回の CSS ファイルは圧縮してあるので
行番号はなし。
全体幅を調節したせいか、こちらの幅を狭めておかないと
ハイライト行がはみ出す。