置換がおかしい気がします
NASの引っ越しで、WhiteBrowserという動画管理ソフトの動画の絶対Path群を
全置換したくてPupSQLiteを使用させて頂いているのですが、どうも置換処理が
ちゃんと挙動をしていないように思います。

・したかったこと
絶対Pathで記載されている動画Path "\\Nasb\foo\bar.mp4"の先頭を\\Nasc\~に全て置換する

・変なところ
[置換後の文字列]の過去ログが記録されない ※[置換する文字列]側は記憶してる

[検索オプション]はすべてクリアなのに、検索文字で大小文字が区別される
※Path名なので、データに"\\Nasb" や"\\nasb"などの大小文字の表記揺れが有るのですが、片方しか置換されません。
挙動を見てると、たとえば\\Nasbの検索置換で、\\Nasbも\\nasbもHitしてるけど\\nasbの置換作業に失敗してる?

10000行超えたデータの置換は凄く遅くなるようです。描画停止とかトランザクションとか、
なんとか早く更新して欲しいです。
※正規表現も使わない単純な列方向置換なのにテレビで時間潰すくらいかかるのは辛い…

希望
今回のPathの変更のような場合、各テーブルに散らばってるPathを、テーブル毎に
置換するのは面倒なので、複数テーブル対象の全置換も出来るようになって欲しいです。
上記の大小文字の表記揺れ対策で1テーブルに数回置換処理をしてるので、想定だと
たとえばSQLファイルが10個*5table*3回(nasb Nasb NASB)で150回置換なのが全置換が出来れば、
10個*1(全テーブル)*3回=30回になるので…
  • もか
  • 2017/10/06 (Fri) 01:22:21
Re: 置換がおかしい気がします
もかさま

ご利用ありがとうございます。Pupです。
置換ダイアログで置換文字列が保存されないバグと大文字小文字の区別の修正を行ないましたので、お試しいただければと思います。

また、この置換機能ですが、これはDataGridView上のデータを書き換えているだけで、SQLの発行やDBへの接続は行なっておらず、大量の置換はUPDATE文を作成して頂くことを前提に、簡易版として用意しています。
※内部では単純なレコードごとのUPDATE文を自動作成しています。
※その為大量の編集ではUPDATE文を自ら作成するよりも、かなり効率が下がります。
  • Pup
  • MAIL
  • 2017/10/10 (Tue) 17:51:40
Re: 置換がおかしい気がします
新Verありがとうございます。
簡単にテストしてみたのですが、置換処理がおかしいかも?

置換処理のテスト
※前回、半角円がバクスラに化けたので、全角円の表記にしてみました。
脳内で半角円に読み替えてくださいませ。

検索文字 ¥¥Nasb
置換文字 ¥¥Nasc

置換対象レコード
¥¥Nasb¥root¥F_ROOT¥S
¥¥nasb¥root¥E_ROOT¥Canopus¥!!Done¥2

[全て置換]ボタン押下

【pupsqlite_ver_1301201】版の結果
¥¥Nasc¥root¥F_ROOT¥S
¥¥nasb¥root¥E_ROOT¥Canopus¥!!Done¥2
※小文字始まり(nasb)が置換されてない

【pupsqlite_ver_1301301】版の結果
¥¥¥Nasc¥root¥F_ROOT¥S
¥¥¥Nasc¥root¥E_ROOT¥Canopus¥!!Done¥2
※¥¥のエスケープ処理がおかしい?

取り急ぎご報告まで
  • もか
  • 2017/10/12 (Thu) 23:01:49
Re: 置換がおかしい気がします
ご利用ありがとうございます。Pupです。

もう一度修正してみました。
全角半角と大文字小文字を私が勘違いしていたフシがある処理になっていました。すみません。

お手数ですが、もう一度ご確認頂ければと思います。
  • Pup
  • 2017/10/13 (Fri) 19:13:10
Re: 置換がおかしい気がします
ver 1.30.13.3 テストしました。
修正されたとの案内の割に挙動が理解出来ず、メール添付用の
サンプルSQLファイルを準備するところまでして挙動の意味が分かりました。

・「すべて置換」が「現在行以降の置換」になってます。
「すべて置換」なら通常は現在行無視して「1行目から最後まで」では?

テーブルの目的カラムにフォーカス当てたり、行を直接修正したりで
同じカラムの途中のレコードにカーソルが居た場合「全て置換」なのに
カーソル位置以降の置換になってるので中途半端に更新されてしまい、
勘違いの元です。

・置換の検索オプション内にテスト用?らしきButton1が居ます。

あと最初の質問で書いてた描画停止の件ですが、ExelVBAや、大昔に
挫折したC++でも描画停止するだけで速度10倍とか経験してるので、
.Netはよく知りませんが、DataGridViewも検索すると高速化の手段
がチラホラ有るようですので勿体ないなあと…
  • もか
  • 2017/10/22 (Sun) 18:20:33
Re: 置換がおかしい気がします
Pupです。

すべて置換の挙動について修正をおこいました。
また、置換スピードの向上ですが、内部のSQL作成部分を効率化しセルの移動を行わなくてもいいようにしてみました。

選択範囲内を検索するオプションが使えなくなってしまいましたが置換スピード自体は上がっています。
一旦制約のチェックも外しています。(時間がかかる処理なので)
お試し頂ければと思います。

また、SQL作成部分をいじっているので、正しく更新されているかの確認や事前のデータのバックアップはしておいてください。
※私がテストした範囲では不十分だと思うので。
  • Pup
  • 2017/10/27 (Fri) 18:41:52
Re: 置換がおかしい気がします
すいません。
仕事が忙しくなってやりとりしていた事を完全に失念しておりました。
先ほどDLしてテストしたところ、かなりな高速化に変な笑いが出てきました。
ありがとうございました。

ところで、お礼とお詫びをかねて投げ銭しようとしたら、PayPalログインしたら
寄付禁止と出て、改めてカード入力したらこちらも弾かれてしまいました。
カードの入力項目が詳細すぎるので、正しく入力した後で弾かれてるので
少し不安なのですが…

別途、最低額ですがアマゾンギフトをメルアド(pup428@gmail.com)宛に送らせて頂きました。
それでは良いお年をお迎えくださいませ。
  • もか
  • 2017/12/30 (Sat) 00:15:23
Re: Re: 置換がおかしい気がします
ご利用ありがとうございます。
これからも頑張りますのでよろしくお願い致します。
  • Pup
  • 2018/01/20 (Sat) 16:48:47

返信フォーム






プレビュー (投稿前に内容を確認)