ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQLコマンドでのWhere句での変数使用方法

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-18 20:32
Tanda  長老   投稿数: 2151
Ace_Nagashim さん、こんにちは。

あとは、バックグラウンドで発行される SQL コマンドのログを取って
みて、定義式の内容が思惑通りに発行されているかを確認すれば、
もっと早くなるかもしれませんね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2012-8-17 16:00
Ace_Nagashim  一人前   投稿数: 105
Tandaさん、ご教授ありがとうございました。
MagicSQLの式に範囲式を記述することで、レコードメインの
範囲指定で行っていた状態から比べて半分ぐらいの時間で
処理できるようになりました。

tiynさん、ご教授ありがとうございます。
変数は :1、:2 の様に記述して、入力パラメータに
セットするのですね。
この記述方法が解らないでいました。
SQLコマンドを使った方法を試してみます。

ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-17 14:24
tiyn  常連   投稿数: 70
oracleの場合
メインソースを使わず
あくまでSQLコマンドでされるのであれば、

SQLコマンド

SELECT NS_社内品番,
NS_発生日付,
NS_データ区分,
NS_数量,
NS_単価,
NS_金額
FROM 入出庫明細
WHERE NS_社内品番 = :1

入力パラメータ
1個目 A.部品番号

になると思いますが、SQLSERVERだと勝手が違うのですかね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-17 12:39
Tanda  長老   投稿数: 2151
Ace_Nagashim さん、こんにちは。

SQL コマンドを直接記述しようとすると、SQL コマンドの知識が必要となって
きます。これに対して、Magic では SQL コマンドを記述しなくても、SQL の
Where 句が発行できるようになっています。

Magic から SQL Where 句を発行するには、「タスク環境」→「範囲/位置付」
→「SQL Where句」→「Magic SQL」→「式」で、ここに普通に Magic の定義式
を記述するだけです。

これで、バックグラウンドでは適切な SQL Where句が発行されます。式には
普通に、「=、<、>」等の等号、不等号記号が使えますよ。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2012-8-17 12:15
Ace_Nagashim  一人前   投稿数: 105
Tandaさん ご教授ありがとうございます。

親タスクで次の変数を用意し、値をセットします。
A.部品番号
B.開始発生日
C.終了発生日

子タスクでSQLコマンドを設定しています。

SELECT NS_社内品番,NS_発生日付,NS_データ区分,NS_数量,
NS_単価,NS_金額 FROM 入出庫明細

これに範囲式として、NS_社内品番 = A.部品番号
NS_発生日付 = B.開始発生日〜C.終了発生日 を定義したいのです。
Where句の具体的な記述が解りません。
Where NS_社内品番 = XXXXXXXX で
XXXXXXXX に A 、部品番号 、A.部品番号 を試みましたが
エラーになってしまいます。
どのように記述したらよいか、ご教授をお願いします。


投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2012-8-17 11:10
Tanda  長老   投稿数: 2151
Ace_Nagashim さん、こんにちは。

Where句を使用する場合は、変数の値がそのタスクの実行前に代入
されている必要があるようです。

つまり、そのタスク自身で定義された変数項目ではWhere句の評価に
手遅れでして、そのタスクの上位タスクで変数の値が定められている
必要があるようです。

上位タスクで変数の値を代入してみてください。きっと、うまく行きますよ。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2012-8-17 9:59
Ace_Nagashim  一人前   投稿数: 105
PervasiveからSQL Serverへの切替を検討しています。
集計・更新のスピードアップをはかるべく、SQLコマンドの
使用を検証しています。
そこで、Where句などでの範囲指定を行う場合の
下限値・上限値に変数を使用する方法が解りません。
どなたかご教授をお願いします。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約