A5:SQL Mk-2

開発のこと、日々のこと

パラメータ?

ホーム フォーラム A5:SQL Mk-2掲示板 パラメータ?

  • このトピックには6件の返信、2人の参加者があり、最後ににより5年、 9ヶ月前に更新されました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #360 返信
    nakada
    ゲスト

    ご教授お願いします。

    データベース:アクセス

    テーブルの内容を取得刷るため以下のSQLを実行すると、
    日付の構文エラーが発生します。

    —[SQL]—————————————-
    SELECT Date_Measure, Time_Measure
    FROM Result_Data
    WHERE Date_Measure >= #2013/1/1#
    AND Time_Measure >= #1899/12/30/ 16:0:0#
    —[結果]—————————————
    [Microsoft][ODBC Microsoft Access Driver]クエリ式
    ‘Date_Measure >= #2013/1/1# AND Time_Measure >=
    #1899/12/30/ 16Pa_RaM00Pa_RaM00#
    日付の構文エラーです。
    ————————————————

    A5SQL Mk-2 のパラメータ関連で実行出来ないと判断し
    オプションにある、パラメータ利用モードを利用しないに
    変更しましたが結果は変わりませんでした
    : を Pa_RaM0 に変換させない方法はあるのでしょうか?

    それとも、何か根本的に間違っているのでしょうか
    ご教授お願いします。

    #380 返信
    松原正和
    キーマスター

    nakadaさんこんにちは。

    Microsoft Accessで日付リテラルは #yyyy/mm/dd#形式ではなく、#mm/dd/yy#形式のようですが、それでは如何でしょうか?。

    A5:SQL Mk-2では、パラメータは 「:」でしていするか、「@」で指定するかのいずれかで、「#日付#」のような形式は「パラメータ利用モード」の設定値にかかわらず、パラメータとして扱われません。

    以上よろしくお願いいたします。

    #2471 返信
    こじじ
    ゲスト

    今回はじめてa5m2利用させていただきます。

    FireBird3.0にODBC経由で接続しストアドを登録したいのですが
    SQLの実行(プロシージャ)で
    下記の:のパラメータ部分でエラーになってしまいます。
    FETCH cur1 INTO in_X1, in_x2, in_x2;
    INSERT INTO tbl_a (x1, x2, x3) VALUES ( :in_X1,:in_X2,:in_X3);
    「パラメータ利用モード」を利用しないにしています。
    SQLの実行(プロシージャ)で:を付加したままDBへ渡す方法はございますでしょうか?
    ご教授のほどよろしくお願いいたします。

    #2473 返信
    こじじ
    ゲスト

    申し訳ございません。先ほどの例を訂正いたします。
    FETCH cur1 INTO in_X1, in_X2, in_X3;
    INSERT INTO tbl_a (x1, x2, x3) VALUES ( :in_X1,:in_X2,:in_X3);

    #2474 返信
    松原正和
    キーマスター

    こじじさんこんにちは。

    ストアドプロシージャの定義で、途中の「;」(セミコロン)がA5:SQL Mk-2でコマンドの区切りとして解釈されたためではないでしょうか?。

    メニューから[SQL(S)] – [ストアドプロシージャとして実行(0)]で、実行すると、セミコロンをコマンドの区切りとみなさなくなるので実行できるようにならないでしょうか?。

    #2477 返信
    こじじ
    ゲスト

    早速のご連絡ありがとうございます。
    説明が不足しておりました。

    ストアドの実行でなくCREATE PROCEDURE でストアドの登録でエラーになっております。
    (「SQLの実行」実行位置:プロシージャモードでCREATE PROCEDUREを実行)

    下記SQL分をコメント化または:でなく固定値を指定すると問題なくストアドの登録ができます。
    –INSERT INTO tbl_a (x1, x2, x3) VALUES ( :in_X1,:in_X2,:in_X3);
    :を含んだ形でサーバに送信することはできますでしょうか?

    Firebirdのisqlなどでは問題なく登録できます。
    メニューから[SQL(S)] – [ストアドプロシージャとして実行(0)]では
    プロシージャの登録はできませんでした。

    A5:SQL Mk-2が総合的に優れているのでできればすべて
    A5:SQL Mk-2で利用できればと思っております。

    #2548 返信
    松原正和
    キーマスター

    こじじさんこんにちは。

    ODBCで接続となっていますが、FireBirdに接続となっていますが、専用接続ではいかがでしょうか?。

    一応、プロシージャモードで実行すると、:などはパラメータとして認識されないはずなのですが、ODBCドライバの方でなにか追加の処理がなされているかもしれません。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
返信先: パラメータ?で#380に返信
あなたの情報:




コメントは受け付けていません。