PervasiveV8からSQLServer2008R2移行に伴う抽出範囲の設定について
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
mysticage
投稿数: 77
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
Puさん、ありがとうございます。
基本は、範囲でのcndrange関数を使用し、処理速度が
遅いと感じたら、埋め込みSQLなどで、改善して
いこうかと思います。
いろいろと教えていただきましてありがとうございました。
基本は、範囲でのcndrange関数を使用し、処理速度が
遅いと感じたら、埋め込みSQLなどで、改善して
いこうかと思います。
いろいろと教えていただきましてありがとうございました。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
単に抽出なら 埋め込みSQLを使用しなくても 範囲で十分速度が
出ると思います。
>メインソースを使用し、範囲:最小と範囲:最大に抽出条件の値を
>そのままいれずに、範囲:最小にはcndrange(最小値<>空白,最小値)、
>範囲:最大にはcndrange(最大値<>'゚゚゚゚゚',最大値)
↑で充分かと思います。
でわ〜でわ〜
単に抽出なら 埋め込みSQLを使用しなくても 範囲で十分速度が
出ると思います。
>メインソースを使用し、範囲:最小と範囲:最大に抽出条件の値を
>そのままいれずに、範囲:最小にはcndrange(最小値<>空白,最小値)、
>範囲:最大にはcndrange(最大値<>'゚゚゚゚゚',最大値)
↑で充分かと思います。
でわ〜でわ〜
投票数:0
平均点:0.00
mysticage
投稿数: 77
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
Puさん、Tandaさん、こんにちは。
cndrange関数の存在は知りませんでした。
MagicV8にも存在していたのですね。
以下の処理の場合、どのようなコーディングをしていますか?
商品マスタ(商品コード(文字列)、商品名(文字列)の項目)の検索画面で、
抽出条件に、商品コードの最小値と最大値の2つの入力項目があり、
それぞれの初期値が空白、[゚゚゚゚゚]となっています。
今までは、メインソースを商品マスタにしていまして、商品コードの範囲:最小と範囲:最大に
抽出条件の最小値と最大値を入れてました。
今回、SQLServerに変更するということで、メインソースからSQLコマンドに変更しまして
SQL文を記載し、
[SELECT 商品コード,商品名 FROM 商品マスタ WHERE 商品コード BETWEEN 最小値 AND 最大値]
としました。
処理速度アップが目的の1つです。
SQSQLコマンドを使用せずに、メインソースを使用し、範囲:最小と範囲:最大に抽出条件の値を
そのままいれずに、範囲:最小にはcndrange(最小値<>空白,最小値)、
範囲:最大にはcndrange(最大値<>'゚゚゚゚゚',最大値)
としたほうが処理速度アップにつながるのでしょうか?
(実際は、商品マスタには他に項目があり、商品コード以外にも範囲で抽出しています)
メインソースからSQLコマンドを使用したほうが処理速度アップに繋がると勝手に思い込んで
しまっています。
その時でコーディング方法は異なるかもしれませんが、教えていただけないしょうか。
よろしくお願い致します。
cndrange関数の存在は知りませんでした。
MagicV8にも存在していたのですね。
以下の処理の場合、どのようなコーディングをしていますか?
商品マスタ(商品コード(文字列)、商品名(文字列)の項目)の検索画面で、
抽出条件に、商品コードの最小値と最大値の2つの入力項目があり、
それぞれの初期値が空白、[゚゚゚゚゚]となっています。
今までは、メインソースを商品マスタにしていまして、商品コードの範囲:最小と範囲:最大に
抽出条件の最小値と最大値を入れてました。
今回、SQLServerに変更するということで、メインソースからSQLコマンドに変更しまして
SQL文を記載し、
[SELECT 商品コード,商品名 FROM 商品マスタ WHERE 商品コード BETWEEN 最小値 AND 最大値]
としました。
処理速度アップが目的の1つです。
SQSQLコマンドを使用せずに、メインソースを使用し、範囲:最小と範囲:最大に抽出条件の値を
そのままいれずに、範囲:最小にはcndrange(最小値<>空白,最小値)、
範囲:最大にはcndrange(最大値<>'゚゚゚゚゚',最大値)
としたほうが処理速度アップにつながるのでしょうか?
(実際は、商品マスタには他に項目があり、商品コード以外にも範囲で抽出しています)
メインソースからSQLコマンドを使用したほうが処理速度アップに繋がると勝手に思い込んで
しまっています。
その時でコーディング方法は異なるかもしれませんが、教えていただけないしょうか。
よろしくお願い致します。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
そうですね、Puさんが言われるように cndrange() 関数を使うのが
いちばん良いですね。
いちばん良いですね。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
せっかくSQLserverを使用されているのですから
条件で抽出される場合
1)条件が入ってる場合は 範囲の上下限でそのまま
2)全件の場合=条件が入ってない場合
cndrange関数で 範囲指定してやれば
良いかと思います。
でわ〜でわ〜
せっかくSQLserverを使用されているのですから
条件で抽出される場合
1)条件が入ってる場合は 範囲の上下限でそのまま
2)全件の場合=条件が入ってない場合
cndrange関数で 範囲指定してやれば
良いかと思います。
でわ〜でわ〜
投票数:0
平均点:0.00
mysticage
投稿数: 77
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
nobukoshi802さん、Tandaさん、返答ありがとうございます。
まずは、SQLServerの照合順序をJapanese_Bin2に変更しました。
データベースを最初から作成し直しましたので時間がかかってしました。
動きを確認しますと、Pervasiveと同じ動きになりました。
また、Magicの文字列項目を範囲抽出する時に全件を対象としたい場合など、空白〜[゚]としていましたが、[*]〜[*]でも抽出できるのですね。勉強になりました。データベースの種類に関係なく使用できるということで、修正していきます。
まずは、SQLServerの照合順序をJapanese_Bin2に変更しました。
データベースを最初から作成し直しましたので時間がかかってしました。
動きを確認しますと、Pervasiveと同じ動きになりました。
また、Magicの文字列項目を範囲抽出する時に全件を対象としたい場合など、空白〜[゚]としていましたが、[*]〜[*]でも抽出できるのですね。勉強になりました。データベースの種類に関係なく使用できるということで、修正していきます。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
mysticage さん、こんにちは。
[゚゚゚]ではなく、ワイルドカードの「*」を使えば、どんな環境でも
うまくいくと思いますよ。
[゚゚゚]ではなく、ワイルドカードの「*」を使えば、どんな環境でも
うまくいくと思いますよ。
投票数:2
平均点:10.00
nobukoshi802
投稿数: 118
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
照合順序の設定がJapanese_CI_ASだからだと思います。
Pervasiveと同じ動作にしたい場合は
Japanese_Bin2にすれば良いはずです。
Pervasiveと同じ動作にしたい場合は
Japanese_Bin2にすれば良いはずです。
投票数:1
平均点:10.00
mysticage
投稿数: 77
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
PervasiveV8からSQLServer2008R2にデータベースを移行しています。
dbMagicのバージョンはV10です。
あるテーブルの抽出処理で、フォームにそのテーブルの文字列項目(3桁)の範囲を入力し、その範囲を抽出しようとしています。
フォームには、開始用の入力変数と終了用の入力変数を配置し、抽出時にその変数をそれぞれ、データビューの文字列項目の範囲:最小と範囲:最大にセットしています。
PervasiveV8の時は、開始を空白、終了を[゚゚゚]としましたら、全件抽出できましたが、SQLServer2008R2では、1件も抽出できません。
抽出範囲を指定しています文字列項目には、英数値のみが入っています。
SQLServer2008R2の照合順序は[Japanese_CI_AS]になっています。
SQLServer2008R2で、全件を抽出したい場合の開始と終了の値はどうしたらよろしいでしょうか。教えて下さい。
よろしくお願い致します。
dbMagicのバージョンはV10です。
あるテーブルの抽出処理で、フォームにそのテーブルの文字列項目(3桁)の範囲を入力し、その範囲を抽出しようとしています。
フォームには、開始用の入力変数と終了用の入力変数を配置し、抽出時にその変数をそれぞれ、データビューの文字列項目の範囲:最小と範囲:最大にセットしています。
PervasiveV8の時は、開始を空白、終了を[゚゚゚]としましたら、全件抽出できましたが、SQLServer2008R2では、1件も抽出できません。
抽出範囲を指定しています文字列項目には、英数値のみが入っています。
SQLServer2008R2の照合順序は[Japanese_CI_AS]になっています。
SQLServer2008R2で、全件を抽出したい場合の開始と終了の値はどうしたらよろしいでしょうか。教えて下さい。
よろしくお願い致します。
投票数:0
平均点:0.00