SQLの窓

2009年10月29日

VB.NET:伝票入力用の参照ダイアログとDataGridViewの列内のボタン



Lboxgrid_den_btn


実際は、明細部の上部にヘッダ情報として、伝票番号と得意先と伝票日付が付加され、得意先の参照用
として検索用のダイアログを実装します。それと同じ目的で、明細部の行単位で商品コードをダイアログで
参照します。それぞれ、ダイアログで参照しなくてもコードが解っている場合は、エンターキーで名称等の
情報をDB より取得して入力を完成させて行きます。

その際必要な部品としての情報が以下になります。


1) VB.net : フォームの「閉じるボタン」を無効にする
2) VB.net : LboxGrid+DB : 簡単な問い合わせ
3) VB.net : LboxGrid : 列にボタンを実装する


また、これ以外にも伝票番号を取得する処理として、明示的にトランザクションを使用します。
( 伝票番号取得用に専用テーブルを使用します )
以下は学生にまとめさせたものです。

VB.NET SQLServerでのトランザクション処理




posted by at 2009-10-29 21:01 | VB.net | このブログの読者になる | 更新情報をチェックする

VB.net : SQLExpress( SQLServer ) : SMOによるバックアップ


VB.net : SQLExpress(SQLServer) : SQL-DMO と同等の SMO によるバックアップ


SQL-DMO 使った事が無いと、とても解りにくいでしょうね。
SQL-DMO からも拡張されているだろうし、特に、Bulkcopy のエクスポートが無いみたいなんですけど・・・
例によって、Microsoft のサイトのマニュアルは、2008 と 2005 があって、必要なものは両方から
探さないと見当たらないし( どちらか片方にしか無い )

そもそも、SQL-DMO の時点で使ってる人居たんでしょうか。
SQL でやったほうが直感的で簡単てすし。

とは言うものの、あるものは使ってみたいと言う好奇心には逆らえませんでした。






posted by at 2009-10-29 17:40 | VB.net | このブログの読者になる | 更新情報をチェックする

2009年10月28日

VBS : SQLServer : Microsoft.Jet.OLEDB.4.0を使った必殺技。Excelへ入出力


VBS : SQLServerよりExcel へエクスポート(Excel製品は必要ありません)


この方法は気がつきにくいんですが、とても便利です。SQLServer というよりも、Microsoft の
JET を中心として、SQLServer と Excel に外部リンクを動的に作る方法です。元々、Access の
外部リンクの仕様から来てるので、別々の DB 間で結合という結構とんでもない処理も可能です。

接続文字列の仕様はそもそも、DAO から来てまして、Access の SQL では in 句による外部
参照もありますが、こちらのほうが何でもありです。というか、Access で外部リンクを作成して、
システムテーブルの接続情報を見てもらうと解りますが、こうなってますので。

これ使うと、ODBC ドライバさえちゃんと作られておれば、Access の SQL で全ての DB と同時
結合やら select into やらできるので、運用する立場の人は泣いて喜ぶと思います。
で、この処理は10年以上前から使ってますが、ちゃんと書くのは初めてですね・・・そういえば。

Oracle はちょっとクセがあります。接続文字でユーザ(スキーマ) を指定しているにもかかわらず、
さらに修飾としてスキーマ名を続けないと、別スキーマで同一オブジェクト名があるとエラーになります。
どちらかというと、Microsoft の ODBC ドライバのほうが信頼感あります。Oracle に対するドライバ
は、Framework でも用意しているところから見ても、きちんと Microsoft の看板かかげてサポート
しています。昔は、精度のある列名でまともに動かなかったので、Oracle に対するいやがらせかいな・・・・
なんて思った時期もありました。現場でそういうトラブルは実際にありましたし。




SQLServer の OPENDATASOURCE 関数による Excel の参照


もう一つは純正接続で、外部のデータソースを見に行く方法です。
こちらは読み込むだけでせいいっぱいというか、デフォルトでは使え無い上に、
「できれば使わせたく無い」という主旨がミエミエのものになっていますが、
解る人ならすぐ使えます。でも、JET 使ったほうがいいと思いますけれど。




posted by at 2009-10-28 19:41 | VBScript | このブログの読者になる | 更新情報をチェックする

手ブロが変わってた

カスタムパレットツールのほうにコメントが入ってたので読んでみると、

「マイページ編集が新しくなり」

え?

こちらのパレットツールが上手く動かないのです」

え゛え゛・・・・

原因はすぐ想像できたんですが、想像以上でした。
縁取りオプションの追加に伴って、

SelectColor2 というメソッドが、
SelectColor2Fuchidori というメソッド名に変更されてました。

ほお・・・
これ無かったら、縁取りペンの存在にとうぶん気づいて無かったです。

速攻で直して、リリースしたんですが、Firefox もあったのでその日
の夜中に変更して、偶然他のところにもコメントがあったのに気がついて
( それは2ケ月前だったんですけど )
ハートエディタを Firefox に対応して、昨日サファリでも動くみたい
なのを確認しました。

で、コメント欄も変更されていたのに気がついて、対応して・・・


けっこう忙しかったのでした。


でも、楽しかった(笑)


カスタムパレットツールを使ってくれる人も沢山いるし、
何と言っても自分が一番助かってるんですもの。


あ、そうそう。

仕様上、縁取りの色は補色で固定みたいなんですが、縁の色は指定できる
はずなんで今から作ってみようかな(作りました)。
pipa はできるくせに出し惜しみするというか、透過も5%とか95%とかできるんですよ。

私はこっそり使ってますけどね(笑)



1252328628672351_2


--------------------------------------------------
縁取り色変更作ってしまいました。

ていうか、この手のツールをオフィシャルにして、
なんかイベントぶち上げればいいのに。

オフィシャルブログなかより、ぜったい盛り上がると思います
( 気合入るし )


posted by at 2009-10-28 10:10 | Comment(0) | 手書きブログ | このブログの読者になる | 更新情報をチェックする

2009年10月27日

手書きブログ用ハート(ドット)エディタのJavaScript的考察


JS : ドットエディタのクロスブラウジング


WEB にあるMozilla のマニュアルは込入った内容を調べようとすると、無駄に時間がかかるので、
既に実装されているサンプルを探したほうが早い場合もあります。これは、一応マニュアルを見ながら
やりましたが、Firebug が無いと3倍くらい時間かかってたかもしれません。
それがあったので、つい後回しにしてしまっていたのですが・・・

あらためてまとめて見直してみると、要するに全く二通りのアプローチとなります。
困ったもんですが、まあ・・・仕方ないでしょう。





posted by at 2009-10-27 23:00 | JavaScript | このブログの読者になる | 更新情報をチェックする

VB.net : SQLExpress(SQLServer) : COMを使用した旧式コードの利用(つまり、VB.net 内からしょうみの ADO のフィールドオブジェクト使って更新する)


VB.net : SQLExpress : COM を使用した旧式コードの利用


こんな選択肢は無理にする必要も無いのですが、まだ世の中には VC++ で作成された COM の資産がたくさんあるので、チャンスがある限りテストしておくと、少なくともウチの学生達が利用できるかも・・・と思ってます。

前期に Oracle ばっかやってたので、後期に SQLServer を集中してます。なんだかんだ言って、Oracle の次に書く事が多いのは、Microsft 純正だというせいもありますが、一般には理解しがたい裾野の広さはハンパではありません > SQLServer 使わないですけどね。



posted by at 2009-10-27 21:46 | VB.net | このブログの読者になる | 更新情報をチェックする

2009年10月25日

VB.net : SQLExpress(SQLServer) : SqlClient を使用した基本的な DB アクセス


VB.net : SQLExpress : SqlClient を使用した基本的な DB アクセス

SqlClient を使うメリットは、イザという時に SQLServer の管理機能も同時に使えるところです。本来このコードは、クラス化していたものをバッチ処理用に分解したものなので、少し無駄に思える機能が残っています。

入力画面のある DB アプリケーションでは、Reader を何度も使いまわしするわけで、プログラマのミスを吸収できるように、開いている Reader を使う前に閉じるようにしています。このような処理は結構重要で、最適化すべき処理では問題ありますが、現実問題としてデバッグやトラブル対応にかける時間は可能な限り小さくする必要があります。



posted by at 2009-10-25 22:13 | VB.net | このブログの読者になる | 更新情報をチェックする

2009年10月23日

SQLite3:日本語販売管理データ(sqlite3のファイルと元データのMDBとコンバート用のスクリプト)



SQLite3 : 日本語販売管理データ



テーブル名 タイプ 作成 更新 件数   
1 V_商品一覧 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 100
2 V_売上日付 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 1
3 V_得意先台帳 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 2463
4 V_社員一覧 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 50
5 コード名称マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 17
6 コントロールマスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 1
7 メッセージマスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 13
8 取引データ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 2463
9 商品マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 100
10 商品分類マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 29
11 得意先マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 50
12 社員マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 50
13 郵便番号マスタ TABLE 2005/09/13 1:57:58 2005/09/13 1:57:58 3715


以上のデータを同名のテーブルでカタログしています( db1.sqlite3 )
CREATE 文は、スクリプトの中にありますが、SQLServer の形式でテストして
そのまま動いていますが、NVARCHAR は VARCHAR( TEXT ) になるようです。

細かいテストはしていませんが、VARCHAR の桁指定も正しく動作しているようですし、
日付型も無いはずなのにそれなりに動いているようですが・・・・・






posted by at 2009-10-23 15:08 | VBScript | このブログの読者になる | 更新情報をチェックする

2009年10月21日

JTableの標準化(ほぼ完成版)


JTableの標準化

Jtable_std 

前回ボタンを追加できるようにしたのですが、AddColumn をしてしまうと内部のデフォルトエディタがリセットされてしまったので、多少の仕様変更に加えて、コンボボックスとチェックボックスを追加できるようにして、さらに TAB によるフォーカスコントロールを行って、伝票入力ができると思われる程度にはなりました。

Enter キーで次のカラムへ移動したいところですが、Java はやたらと面倒くさいです。これだから、Java は流行らないんでしょうね・・・
Java は得意では無いのですが、プログラミングは仕事なのでいろいろな言語を標準化しましたが、なんか JTable の設計思想はちょっとキツイです。

世の中にほとんど良いサンプルが無いのがその証拠です。




posted by at 2009-10-21 16:35 | Java | このブログの読者になる | 更新情報をチェックする

2009年10月19日

PHP : SQLExpress 2005 接続と通常処理


PHP : SQLExpress 2005 接続と通常処理 

VBS : SQLExpress(SQLServer) 2005 接続と通常処理 の続編で PHP バージョンです。PHP は、PDO と COM を使っています。PDO は結構良くできていますが、SQLServer への対応としては、ODBC を推奨していますから、SQLServer 依存の処理などをどうしても使いたい場合は COM の出番になると思います。

COM では、純正接続と、新旧の ODBC ドライバでテストしました。




posted by at 2009-10-19 21:22 | PHP+DB | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX