(現在 過去ログ28 を表示中)

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

[ 最新記事及び返信フォームをトピックトップへ ]

■4383 / inTopicNo.1)  外部DB(ODBC)接続時に日付の日を取り出したい。
  
□投稿者/ 広田 -(2009/02/23(Mon) 14:27:49)
    いつも大変お世話になっています。

    ACCESSの〇〇.mdbにODBCで接続して〇〇.xvwで開いています。
    [day]表示項目を作成し
    2009/2/23のデータの23だけを取り出したいと思っています。

    定義の項目計算式のODBC関数に#年、#月はあるのですが、
    #日は見当たりません。

    何か手段をご提示頂けると幸せます。
引用返信 [メール受信/OFF] 削除キー/
■4384 / inTopicNo.2)  Re[1]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ おたけ -(2009/02/23(Mon) 19:15:47)
    No4383に返信(広田さんの記事)
    > ACCESSの〇〇.mdbにODBCで接続して〇〇.xvwで開いています。
    > [day]表示項目を作成し
    > 2009/2/23のデータの23だけを取り出したいと思っています。

    はじめまして
    僕の場合アクセスじゃないのですが、2009/2/23が入力されている項目が文字列項目なので
    桐では「絞込み条件1」に書いてある条件式は、["hogehoge".day]="2009/2/23"
    ODBC対象データーベース名が「hogehoge」で日付の入った項目名が「day」です
    以上で正常に出てきているのですが、外れてたらごめんなさいm(__)m

引用返信 [メール受信/OFF] 削除キー/
■4385 / inTopicNo.3)  Re[2]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 広田 -(2009/02/23(Mon) 19:39:56)
    おたけさん はじめまして。コメントありがとうございます。m(_._)m

    > 僕の場合アクセスじゃないのですが、2009/2/23が入力されている項目が文字列項目
    すみません。Accessのテーブルは日時型で入力されています。
    2009/2/26 16:45:00

    いろいろ頑張ってみているのですが、
    〇〇.xvwの項目計算式では日時型を文字列に変換できないのかな??
    一度別ファイルに書き出すか、併合など使えば良いのでしょうが
    できれば〇〇.xvw上で行いたいなと思っています。

引用返信 [メール受信/OFF] 削除キー/
■4386 / inTopicNo.4)  Re[1]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 通りすがり -(2009/02/23(Mon) 20:06:24)
    フォーム使わない想定なの〜?
引用返信 [メール受信/OFF] 削除キー/
■4388 / inTopicNo.5)  Re[3]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ おたけ -(2009/02/23(Mon) 22:11:59)
    No4385に返信(広田さんの記事)
    >> すみません。Accessのテーブルは日時型で入力されています。
    > 2009/2/26 16:45:00

    参照表を結合表無しにしてアクセス表のまま設定して開いたらどうなりますか?
    開いた表に絞り込みをかけると必要なデーターだけに絞り込めないでしょうか?
    このデーターは桐から参照するだけで、アクセス側のデーターを桐で更新しないのですか? 
    文字列なら簡単に、["hogehoge".day]="2009/2/23"* アスターリスク付けるだけなのにね。

引用返信 [メール受信/OFF] 削除キー/
■4389 / inTopicNo.6)  Re[3]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 長門孝雄 -(2009/02/24(Tue) 09:33:11)
    No4385に返信(広田さんの記事)

    > いろいろ頑張ってみているのですが、
    > 〇〇.xvwの項目計算式では日時型を文字列に変換できないのかな??
    > 一度別ファイルに書き出すか、併合など使えば良いのでしょうが
    > できれば〇〇.xvw上で行いたいなと思っています。
    >
    計算項目を追加して#str(日時型項目)で文字列に変換できませんか?
引用返信 [メール受信/OFF] 削除キー/
■4390 / inTopicNo.7)  Re[2]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/24(Tue) 09:33:26)
    Access 自体は「DAY」関数を持ち合わせているけど
    桐が ODBC では「DAY」関数を何故か備えていないよう
    だから、桐が ODBCで直接変換して「日」だけを取り出
    すのは無理でしょうね。

    なので、表示の問題だったら、通りすがりさんの書か
    れたとおりフォームで「日」だけを表示するように
    するか、計算で必要だったら、桐側で日だけを取り出
    して計算に使うか。


    あとは、Access 側で桐に必要なフォーマットのビュー
    (クエリ)を作っておいて、桐ではそれを対象にするか、

    あるいは、面倒な話だけれど、Access でも別の DB
    でも良いけど、外部DB に日を取り出すための[日付]と
    [日]の 2項目を持つテーブルを設け、必要な期間の
    データの日付をレコードとして全てもつ。桐の外部DB
    では、対象のAccess のデータと、日を取り出すための
    テーブルを対象表として、Access の[日付]と、日取り
    だし用の[日付]を結合する。そして、表示は日取りだし
    用の[日]を表示させる。


    そんなところですかね!?


    桐でも SQL を直接投げかけて処理できると良いのだけれ
    ど。


引用返信 [メール受信/OFF] 削除キー/
■4391 / inTopicNo.8)  Re[4]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/24(Tue) 09:35:09)
    > 計算項目を追加して#str(日時型項目)で文字列に変換できませんか?

    Access の場合は無理みたいですね。


引用返信 [メール受信/OFF] 削除キー/
■4392 / inTopicNo.9)  Re[5]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 長門孝雄 -(2009/02/24(Tue) 09:38:33)
    No4391に返信(hidetakeさんの記事)
    >>計算項目を追加して#str(日時型項目)で文字列に変換できませんか?
    >
    > Access の場合は無理みたいですね。
    >
    >
    oracleではできるのですが残念ですね
引用返信 [メール受信/OFF] 削除キー/
■4393 / inTopicNo.10)  Re[3]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ うにん -(2009/02/24(Tue) 12:04:54)

    > 桐でも SQL を直接投げかけて処理できると良いのだけれ
    > ど。

    #str(日付型)がoracleでは使えるらしいですが、桐のマニュアルでは
    #str(数値)しかサポートしてないはずなんですけど。
    逆に、#str(intやshort)でもpostgresqlでやってみたら
    「'#文字列'関数はサポートしていません」になってしまった。
    漢字の関数名がエラーメッセージに出てくるのも変だけど、
    型変換のSQL標準はCASTのはずなんでODBCにはSTR関数があるんでしょうか。
    外部表の計算項目式は、桐の関数を使えるわけでもないのに
    直接なげてるわけでもない、中途半端な仕様?

引用返信 [メール受信/OFF] 削除キー/
■4394 / inTopicNo.11)  Re[4]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/24(Tue) 12:52:47)
    2009/02/24(Tue) 12:53:45 編集(投稿者)

    > #str(日付型)がoracleでは使えるらしいですが、桐のマニュアルでは
    > #str(数値)しかサポートしてないはずなんですけど。
    > 逆に、#str(intやshort)でもpostgresqlでやってみたら
    > 「'#文字列'関数はサポートしていません」になってしまった。
    > 漢字の関数名がエラーメッセージに出てくるのも変だけど、
    > 型変換のSQL標準はCASTのはずなんでODBCにはSTR関数があるんでしょうか。
    > 外部表の計算項目式は、桐の関数を使えるわけでもないのに
    > 直接なげてるわけでもない、中途半端な仕様?

    桐の ODBC関数のヘルプを見ると
    ---------------------------------
    num を文字列型に変換する。

    《別名》 #STR #文字列

    ODBC関数:
    CONVERT( num , SQL_CHAR )
    ---------------------------------
    と記載されていますね。

    で、手元の資料で CONVERT 関数を見てみると
    サポートしているのは SQL Server だけでした。

    Oracle では使えたそうだけれど、新しいのでは
    CONVERT 関数が追加になったのですかね?


引用返信 [メール受信/OFF] 削除キー/
■4395 / inTopicNo.12)  Re[5]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 広田 -(2009/02/24(Tue) 16:50:33)
    皆様、大変ありがとうございました。
    的外れな質問でなくて、ちょっとホッとしています(^^;

    フォームで表示させるだけではなく、得られたデータを2次利用したかったものですから。
    皆さんのアドバイスを頂戴し、最終的には書き出し併合などで対応しました。
    今後は、access側に想定できる対応をして行こうと思っています。

    日付を数値型に変換する関数が、年、月、時、分、秒と揃っているのになぜか日だけ無いんですよね・・・

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■4396 / inTopicNo.13)  Re[6]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/24(Tue) 17:32:20)
    > 日付を数値型に変換する関数が、年、月、時、分、秒と
    > 揃っているのになぜか日だけ無いんですよね・・・

    あら本当だ。 是非 kthree のサポートにも問い合わせて
    要望を出しといてください。

    手元の資料で見ると、年、月、時、分、秒の関数をそのまま
    備えているのは DB2 , SQL Server , MS Access , MySQL で
    日だけは DB2 , SQL Server , MS Access となっていて
    MySQL は外れているようです。

    これらの関数は 桐ver8 の時から一緒のようですから、この
    時期は MySQL なんて日本ではほとんど使われていなかった
    でしょうけど、何の事情があったのですかね?

    PostgreSQL では、これらの関数は同名では備えていないので
    使えないようですけど Oracle も一緒なのですかね?
    Oracle だけ EXTRACT 関数に置き換えてと言うのも無いので
    しょうが。


引用返信 [メール受信/OFF] 削除キー/
■4401 / inTopicNo.14)  Re[7]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ うにん -(2009/02/25(Wed) 09:58:02)
    > これらの関数は 桐ver8 の時から一緒のようですから、この
    > 時期は MySQL なんて日本ではほとんど使われていなかった
    > でしょうけど、何の事情があったのですかね?

    7.1のHELPでみるとこの時は年もなかったようです。

    > Oracle だけ EXTRACT 関数に置き換えてと言うのも無いので
    > しょうが。

    何でExtractを使わないですかね。
    もしかして古いSQLServerにはこっちがなかったとかかなあ。

    外部DBの計算項目に桐の関数が全部使えないというのも
    何とかならないんですかね。SQLに入れるんでなくて、結果に項目を追加できる
    だけで今回のようなケースにも対応できるようになるのに。
    結合表に外部DBを使えないし。
    FileMakerでは前バージョンからそういうことができるようになってます。
    パフォーマンスの問題で実用にするには使い方が難しいらしいですが。
引用返信 [メール受信/OFF] 削除キー/
■4402 / inTopicNo.15)  Re[8]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/25(Wed) 13:00:37)
    2009/02/25(Wed) 13:01:18 編集(投稿者)

    > 何でExtractを使わないですかね。
    > もしかして古いSQLServerにはこっちがなかったとかかなあ。

    手元の SQL ポケットリファレンスでは
    EXTRACT 関数は ANSI標準だけれど、
    Oracle , PostgreSQL , MySQL だけが
    備えているように書いてありますね。

    SQL Server , MS Access で、これに該当
    する関数は DATEPART になっています。

引用返信 [メール受信/OFF] 削除キー/
■4403 / inTopicNo.16)  Re[9]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 通りすがり -(2009/02/25(Wed) 16:24:40)
    2009/02/25(Wed) 19:13:11 編集(投稿者)

    意味不明だったので書き換えた

    mdb の外部データベース接続で #日時値()が使えないのは、桐のせいじゃなくて、
    単にJETエンジンには該当関数が無い、だけじゃねーの?

    Windowsのオマケで付けるものに、最小限しか作ってないとか、
    どうせAccessからならVBA関数使えるからとか、

    JETはもともとパーソナル向けだし、外部データベースで接続とか余り期待しない方が…

    って、俺の勘違いかな?
引用返信 [メール受信/OFF] 削除キー/
■4404 / inTopicNo.17)  Re[9]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/25(Wed) 17:59:55)
    >>何でExtractを使わないですかね。
    >>もしかして古いSQLServerにはこっちがなかったとかかなあ。
    >
    > 手元の SQL ポケットリファレンスでは
    > EXTRACT 関数は ANSI標準だけれど、
    > Oracle , PostgreSQL , MySQL だけが
    > 備えているように書いてありますね。
    >
    > SQL Server , MS Access で、これに該当
    > する関数は DATEPART になっています。
    >

    KIRIORCL.TBL を見てみると、年、月、時、分、秒の
    関数だけでなく、「日」も記載されていますね。
    --------------------------------------------------
    日付文字列 str または日時値 tmst の「日」の値を数値で返す。
    str は yyyy-mm-dd 形式の日付リテラルのみ指定できる。

    《別名》 #DAY #日

    ORACLE関数:
    TO_NUMBER(TO_CHAR(TO_DATE( str , fmt ) , 'DD' ))
    --------------------------------------------------

    EXTRACT では無く、3つの関数の組み合わせのようです。
    年、月、時、分、秒も同様なようですけど。

    これって、Oracle だけ特殊な処理をしているのですか?
    それとも Oracle桐の残骸なのですかね?


    # これが一般的に使えると PostgreSQL でも同じように
    # 使えるはずなのですが。


引用返信 [メール受信/OFF] 削除キー/
■4405 / inTopicNo.18)  Re[10]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 通りすがり -(2009/02/26(Thu) 19:13:30)
    時間あったので MS の ODBC Programmer's Reference 見てみた
    使える関数は、各 ODBCドライバーの実装に依存する、ってことが書いてある

    JETDBエンジンじゃなく ODBCドライバーの対応の問題みたい
    もちろんDBエンジンが対応してないとドライバーも書けないんだろうけど
引用返信 [メール受信/OFF] 削除キー/
■4406 / inTopicNo.19)  Re[10]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ hidetake -(2009/02/26(Thu) 20:13:16)
    2009/02/26(Thu) 20:20:13 編集(投稿者)

    > mdb の外部データベース接続で #日時値()が使えないのは、桐のせいじゃなくて、
    > 単にJETエンジンには該当関数が無い、だけじゃねーの?

    あの #4390 にも書いたけど、Access でも SQL Server も DB2 も
    (Oracle と PostgreSQL と MySQL を除く) DAY関数自体は備えて
    いるようですよ。ただ、桐側がこれを使うための ODBC関数として
    #日 (#DAY) 関数を備えていないのです。

    Oracle と PostgreSQL と MySQL も DAY関数では無く、他の関数を
    使えば同じ結果は得られるのですけれど、まさか、桐が相手側を
    見て、そのリストを持っていて切り分けて使ってはいないと思うの
    で桐で持っていても、相手によって使える関数は限られてくるわけ
    すが。

    Oracle & PostgreSQL & MySQL がもつ EXTRACT 関数に対応する
    DATEPART関数は MS SQL Servedr に限らず Access も備えている
    ようです。

    なので、DAY 関数でも EXTRACT 関数もしくはDATEPART関数でも
    複数の方式で、いずれの DB も「日」だけを取りだすことはODBC的
    (SQL関数的)には可能なのです。ただ、これに対応する「#日」関数
    を桐が何故か持ち合わせていないと言うことが、今回の話題です。

    Access に限らず他の DB でも「日」だけが取りだせないという謎
    の仕様が問題となってなっています。


引用返信 [メール受信/OFF] 削除キー/
■4407 / inTopicNo.20)  Re[11]: 外部DB(ODBC)接続時に日付の日を取り出したい。
□投稿者/ 通りすがり -(2009/02/26(Thu) 20:28:20)
    ども、

    > Oracle & PostgreSQL & MySQL がもつ EXTRACT 関数に対応する
    > DATEPART関数は MS SQL Servedr に限らず Access も備えている
    > ようです。

    うーん、Access とか関係あるのかなぁ?
    PCに Access が入ってても、入って無くても、
    それとは無関係に mdb は ODBC で接続できるんじゃないの?
引用返信 [メール受信/OFF] 削除キー/

次の20件>

トピック内ページ移動 / << 0 | 1 >>

[このトピックに返信]
Mode/  Pass/

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

- Child Tree -
- Antispam Version -