■1283 / ResNo.7) |
Re[6]: 桐と外部DB
|
□投稿者/ hidetake -(2018/12/16(Sun) 12:47:31)
| 桐で「外部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 # 宣言したような気がします。 # なお、【多遊】さんやほかの方の権利はその方々にあります。 # # と、書いてみるテスト。
|
|