HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

ログ内検索
・キーワードを複数指定する場合は 半角スペース で区切ってください。
・検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
・[返信]をクリックすると返信ページへ移動します。 (*過去ログは表示されません)
・過去ログから探す場合は検索範囲から過去ログを選択。

キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

現在のログを検索

<< 0 >>
■1266  桐と外部DB
□投稿者/ hidetake -(2018/12/07(Fri) 10:13:42)
    パスワード:[kiri] 


    2018/12/14(Fri) 09:07:56 編集(投稿者)

    桐で使用する「DB」ですが、桐のテーブルを
    共有し、その善し悪しも一定量理解した上で、
    それなりのシステムを作るならば、桐のテーブル
    にこだわり続けるよりも、「外部DB」+SQLサーバ
    構築するのもありだと思う。

    マイクロソフトのSQL Server は、
    無償バージョンでも今となっては
    -----------------------------------------
    SQL Server 2017 Express エディション
    コア数:4コア
    メモリ:1,410MB (インスタンスあたり)
    最大データベースサイズ:10GB
    -----------------------------------------
    と、相当な規模のシステムを組まない限り、
    無償バージョンでもいける仕様となっていま
    す。
    マイクロソフト自身も、それぐらいの規模
    だったら「Express エディション」で十分
    じゃないですかって、指南してくれる。

    PostgreSQL に始まり、MySQL に少し手を
    染めて、SQL Server も使っている身として
    は、「SQL Server Express エディション」
    +桐というのは、とても良い環境だと思う。

    https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-editions

    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。
親記事 / 返信ページ / 関連記事表示
削除チェック/

■1275  Re[1]: 桐と外部DB
□投稿者/ 尾形 -(2018/12/12(Wed) 17:25:10)
    パスワード:[kiri] 


    どうも、こんにちは

    どこに書こうか迷いましたが
    とりあえずこちらに


    最近、本格的にutf8(桐10)への移行検討を始めました


    PostgreSQLと比較して
    SQL Server 2017 Expressを使うメリット
    は何か感じられますか?



    親データベースも再調査したら
    MariaDBなんてのもあるんですね


    DBテーブル定義の移行
    データの移行
    桐関係ファイル移行


    色々と先は長そうです (^^;

記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1276  Re[2]: 桐と外部DB
□投稿者/ hidetake -(2018/12/12(Wed) 21:55:40)
    パスワード:[kiri] 


    2018/12/14(Fri) 09:08:48 編集(投稿者)
    2018/12/12(Wed) 22:48:04 編集(投稿者)

    ども、尾形さん

    元々の記事を書きながら、いい加減な答えしか
    出来ないのですが、

    桐の共有で、桐のテーブルを使って苦労する
    ぐらいなら、「外部DB」の方が良い!! 良いと
    言うより、「外部DB」でいいんじゃない!? 的な
    意味合いが大きいのですが、 (^^;

    じゃ〜、DBMS は何が良いの!? と言われると、
    SQL Server 2017 Express エディション で
    いいんじゃない!! って言う、雰囲気が大きい
    です。

    PostgreSQL は、現在でも生きているシステムで
    使っていますが、最近ではあまり、面倒も見て
    いないです。
    LAN内での使用となりますが入力は MAC を含め
    WEB経由で入力を行い、その集計や請求・入金
    業務を桐で行っております。

    MySQL は、基本的には WEBシステムの DB と
    して使いながら、その DB にアップロードする
    データを桐で管理しているのがメインで、桐で
    積極的なシステムを組んでいるわけではありま
    せん。

    Microsoft SQL Server は、入力は基本的には
    VPN経由で WEBシステムで行い、その決裁や
    集計、会計処理を桐で行っております。

    手がけた順も先に書いたとおりですが、基本
    的に、管理工学研究所は、桐の「外部DB」を
    Microsoft SQL Server をターゲットに開発
    したんじゃない!! って、言う思いも、基本的
    には感じております。

    PostgreSQL は、20年ぐらい前から桐で遊び
    始めたわけですが、DBMS の基本性能がどうの
    こうのと言うような処理はしていないのです
    が、桐で使う場合は、テーブル名の大文字・
    小文字の桐側の問題で、苦労した覚えがあり
    ます。
    あと、ODBCドライバも出しているところが
    複数あり、ドライバによって、動きの異なる
    動作もあり、その動作確認も必要だったりも
    しました。

    Microsoft SQL Server は、3年ぐらい前に
    VB で作られたシステムを桐に移植したの
    ですが、元々が SQL Server 2008 STD だった
    ので、そのままデータが流用できるのを
    確認して、SQL Server 2014 Express を使用
    し開発を行いましたが、PostgreSQL で苦労
    したような問題に苦労させられることもなく、
    単に桐の「外部DB」も問題というか、それを
    使いこなすことだけのスキルが必要なだけで
    した。

    SQL Server Express は有償バージョンと
    違って、タスクをスケジュールで使うことが
    できない。すなわち、スケジュールでバック
    アップを取ったり、スケジュールで、DB を
    最適化したり、圧縮することは出来ないの
    ですが、バックアップについては、タスク
    スケジューラで、SQLPS.exe を使ったり、
    Power Shell で取る事も可能です。
    最適化や圧縮は手動で行うしかありませんが…

    PostgreSQL の場合は、その点、自由にコント
    ロールできるし、バックアップも楽ちんです。

    あと、DBMS を管理する「SQL Server Management Studio」
    も、有償版と同じく、スケジュールや、もっと
    高機能で我々が必要とする機能以外が、何も
    不自由なく使えます。

    そんなこんなで、わたし自身が SQL Server
    に慣れたこともあり、桐の「外部DB」は、
    Microsoft SQL Server で、いいんじゃない!!

    桐の「外部DB」って、Microsoft SQL Server
    をターゲットに開発したのだろうし!?

    って、感じです。 (^^;

    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。


記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1277  Re[3]: 桐と外部DB
□投稿者/ 尾形 -(2018/12/13(Thu) 05:39:06)
    パスワード:[kiri] 


    どうも、ありがとうございます


    > 桐の共有で、桐のテーブルを使って苦労する
    > ぐらいなら、「外部DB」の方が
    そうですよね

    DBMSだと、そもそも「共有」の意識すら無いですので

    共有というより整合性かな


    桐が、推奨DBMSを提示してくれればなぁ
    なんて思ったり

記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1278  Re[4]: 桐と外部DB
□投稿者/ 尾形 -(2018/12/13(Thu) 09:06:52)
    パスワード:[kiri] 


    桐10


    シェル実行 動作=<アクション名>,プロセス番号=<変数名>


    動作、プロセス番号 が正式にサポートされたみたいですね
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1279  Re[4]: 桐と外部DB
□投稿者/ hidetake -(2018/12/13(Thu) 21:06:38)
    パスワード:[kiri] 


    2018/12/14(Fri) 09:09:27 編集(投稿者)
    2018/12/13(Thu) 21:14:36 編集(投稿者)

    「外部DB」を使う場合、単純な結合や単表は別ですが、
    少しでも桐で結合させる場合にめんどくさい場合は、
    SQL Server 側でビューをつくって、それを桐で参照
    しています。もちろん、そのビューに対しての抽出
    条件は、桐側のパラメータで指定し抽出しています。

    桐の共有なんか使うより、一瞬で抽出できます。

    その結果に元に、データに更新が発生する場合など
    はワークファイルに読み込み、その結果を必要な
    実際のテーブルに入力・訂正・削除を行うわけです
    が、その際にはトランザクション処理を入れていま
    す。1つでもエラーなどが発生した場合は、ロール
    バックさせています。

    あと、Microsoft SQL Server を使う場合、主キーに
    IDENTITYプロパティがセットしてある場合は、面倒
    ですね。
    追加の際だけは、主キー項目を外す必要があります。
    でも、その追加された結果の主キーの値は、その場
    では判断できない。再抽出して、結果を得る必要が
    ある。

    自分の場合は、IDENTITYプロパティは外して、
    トリガーでカウントアップするようにしました。
    で、桐から追加する場合は、1件ずつとは限らない
    ので、追加する前にトリガーを無効にしてから、
    桐側から追加する。追加が終わったら、トリガーを
    有効にする。

    次のような SQL を

    &SQL="件数',count(*) FROM tblWork; ALTER TABLE [tblName] DISABLE TRIGGER ALL; -- "

    &SQL="件数',count(*) FROM tblWork; ALTER TABLE [tblName] ENABLE TRIGGER ALL; -- "

    「コマンド実行結合表」に与えて、SQL Server を
    制御しています。

    IDENTITYプロパティつけたまま、

    SET IDENTITY_INSERT [テーブル名] ON;
    SET IDENTITY_INSERT [テーブル名] OFF;

    でも、良いのかな。

    この辺の処理は DBMS ごとに異なるので、慣れが
    必要ですね。

    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1280  Re[5]: 桐と外部DB
□投稿者/ hidetake -(2018/12/14(Fri) 08:19:54)
    パスワード:[kiri] 


    2018/12/14(Fri) 09:08:18 編集(投稿者)

    > SQL Server 側でビューをつくって、それを桐で参照
    > しています。もちろん、そのビューに対しての抽出
    > 条件は、桐側のパラメータで指定し抽出しています。

    これは、ODBCドライバと桐の連携の関係もあります。
    桐は ODBCに対し、テーブルのエイリアスに対応して
    いるか確認し、対応してればテーブル名をエイリアス
    で問い合わせます。A1、A2、A3 …

    なので、#DSQL で SQL を投げかけると、桐は
    パススルーで処理するので、テーブル名を実名で無く
    エイリアスで使っているエイリアス名で指定する必要が
    出てきます。

    Mcrosoft SQL Server に対し桐はエイリアス名で処理
    するので、その辺もいろいろ面倒が出てくる。

    それならば、最初から SQL Server 側でビューで処理
    した方が簡単だと言うことで結果です。

    SQL Server Management Studio (SSMS) も常時使う
    ことに、使いこなすことになります。

    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1283  Re[6]: 桐と外部DB
□投稿者/ hidetake -(2018/12/16(Sun) 12:47:31)
    パスワード:[kiri] 


    桐で「外部DB」を本格的に使うには、SQL文をそのまま
    SQL に流したいことも多くなります。必要になります。

    その場合は、VBScript で投げかけることも可能では
    ありけど、やはり桐内で完結できた方がスマートです。

    ただ、このやり方は桐の脆弱性を突いたトリッキーな
    方式です。桐9 でも 桐10 でも一応使えます。

    そのような場合は、SQL Server 側に作業用のテーブル
    を1つくります。

    適当で構わないのですがサンプル的には
    ----------------------------------------------------------------------------------
    USE [TEST_DB]
    GO

    /****** Object: Table [dbo].[tblWork] Script Date: 2018/12/16 12:21:30 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[tblWork](
    [id] [bigint] NOT NULL,
    [name] [nchar](10) NULL,
    [count] [bigint] NULL,
    CONSTRAINT [PK_tblWork] PRIMARY KEY CLUSTERED
    (
    [id] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    ----------------------------------------------------------------------------------

    桐側の .XVX は添付する画像のように

    tblWork に対し、

    ----------------------------------------------------------------------------------
    表示項目名 所属対象表 項目/計算式 データ型 抽出
    項目000 (計算項目) &SQL 文字列 レ
    項目001 (計算項目) " " 文字列 レ
    項目002 (計算項目) " " 文字列 レ
    項目003 (計算項目) " " 文字列 レ
    項目004 (計算項目) " " 文字列 レ
    項目005 (計算項目) " " 文字列 レ





    (必要な項目数で)
    ----------------------------------------------------------------------------------
    パラメータ変数として「SQL:文字列」を設定します。


    そしたら、あとは &SQL 次のような値を代入し外部DBを
    開くことで、実行可能です。

    例えは、トリガーを無効にしたい場合は
     &SQL="件数',count(*) FROM tblWork; ALTER TABLE [tblName] DISABLE TRIGGER ALL; -- "

    例えは、トリガーを有効にしたい場合は
     &SQL="件数',count(*) FROM tblWork; ALTER TABLE [tblName] ENABLE TRIGGER ALL; -- "

    例えば、任意のテーブルを開きたい場合は
     &SQL="', * FROM tblName ; -- "


    元記事は下記にありますが、わかりやすいようにまとめ
    ました。

    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=5556&page=0&rev=0&no=0&KLOG=36



    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。
1544932051.png/82KB
1544932051.png
/82KB
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1287  Re[7]: 桐と外部DB
□投稿者/ hidetake -(2018/12/16(Sun) 19:02:11)
    パスワード:[kiri] 


    > SQL Server Express は有償バージョンと
    > 違って、タスクをスケジュールで使うことが
    > できない。すなわち、スケジュールでバック
    > アップを取ったり、スケジュールで、DB を
    > 最適化したり、圧縮することは出来ないの
    > ですが、バックアップについては、タスク
    > スケジューラで、SQLPS.exe を使ったり、
    > Power Shell で取る事も可能です。

    本文に書くと、迷惑投稿で書き込めないので
    添付ファイルにしてみます。



    # hidetake の記載物を【多遊】さんのサイト・掲示板以外に
    # (引用の範囲を超えて)転載する場合は、無償サイトであれ、
    # 有償サイトであれ、非公開サイトであれ、元記事にリンクを
    # 貼って下さい。
    # 内容については、若い頃ネット上に書いたものは copyleft
    # 宣言したような気がします。
    # なお、【多遊】さんやほかの方の権利はその方々にあります。
    #
    # と、書いてみるテスト。
1544954531.txt/3KB
1544954531.txt
/3KB
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1298  Re[1]: 桐と外部DB
□投稿者/ hidetake -(2019/02/23(Sat) 19:20:55)
    パスワード:[kiri] 


    > マイクロソフトのSQL Server は、
    > 無償バージョンでも今となっては
    > -----------------------------------------
    > SQL Server 2017 Express エディション
    > コア数:4コア
    > メモリ:1,410MB (インスタンスあたり)
    > 最大データベースサイズ:10GB
    > -----------------------------------------

    WSUS を構築するにあたり、WSUS 用のサーバに標準の
    Windows Internal Database (WID) ではなく、
    SQL Server 2017 Express エディション を入れて試して
    いるけど、最初の段階で 2.5GB 以上のメモリを使用して
    いて不思議に思ったが,落ち着いたら 500MB 程しか
    使わないが、更新ファイルの対象を再設定して、同期を
    かけたら SQL サーバは全体で 3.8GB 程のメモリを使って
    くれている。ちゃんと使ってくれるんだ!?


SQLServer2017ExpressEditionMemory.png/71KB
SQLServer2017ExpressEditionMemory.png
/71KB
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/

■1299  Re[2]: 桐と外部DB
□投稿者/ hidetake -(2019/02/23(Sat) 19:34:15)
    パスワード:[kiri] 


    > WSUS を構築するにあたり、WSUS 用のサーバに標準の
    > Windows Internal Database (WID) ではなく、
    > SQL Server 2017 Express エディション を入れて試して
    > いるけど、最初の段階で 2.5GB 以上のメモリを使用して
    > いて不思議に思ったが,落ち着いたら 500MB 程しか
    > 使わないが、更新ファイルの対象を再設定して、同期を
    > かけたら SQL サーバは全体で 3.8GB 程のメモリを使って
    > くれている。ちゃんと使ってくれるんだ!?

    リソースモニターの値
SQLServer2017ExpressEditionMemory2.png/48KB
SQLServer2017ExpressEditionMemory2.png
/48KB
記事No.1266 のレス / 返信ページ / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -