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

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

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

■5351 / inTopicNo.1)  外部dbでのデータ型変更関数
  
□投稿者/ 尾形 -(2009/11/13(Fri) 11:39:22)
    よろしくお願いします

    外部db定義です
    [tel](文字列型)の項目を定義しています
    これを数値型に変換した状態の計算項目を作りたいのです

    (計算項目)に指定して、計算式に#数値([tel])を指定しましたが
    ODBCエラーと表示され編集できません

    使い方が違うのでしょうか?

引用返信 [メール受信/OFF] 削除キー/
■5352 / inTopicNo.2)  Re[1]: 外部dbでのデータ型変更関数
□投稿者/ うにん -(2009/11/13(Fri) 13:11:58)
    > 外部db定義です

    MySQLですよね。

    > [tel](文字列型)の項目を定義しています
    > これを数値型に変換した状態の計算項目を作りたいのです
    >
    > (計算項目)に指定して、計算式に#数値([tel])を指定しましたが
    > ODBCエラーと表示され編集できません

    式入力の説明には
    ODBC関数:
    CONVERT(( str , {SQL_DOUBLE | SQL_FLOAT | SQL_REAL} )
    と書いてあるけど、計算結果を何型にしても同じエラーで、桐は常に
    SQL_DOUBLEを使ってるけどMySQLは「そんなの知らない」と言ってるようです。
    確かに
    http://dev.mysql.com/doc/refman/5.1/ja/cast-functions.html
    で見るには、DECIMALとかINTEGER系のしかないですね。何でだろう??

    PostgreSQLだとCONVERTを呼んでる時点でエラーになっているようだ。
    ('#数値'関数はサポートされていません)

引用返信 [メール受信/OFF] 削除キー/
■5353 / inTopicNo.3)  Re[2]: 外部dbでのデータ型変更関数
□投稿者/ hidetake -(2009/11/13(Fri) 13:46:47)
    > PostgreSQLだとCONVERTを呼んでる時点でエラーになっているようだ。
    > ('#数値'関数はサポートされていません)

    PostgreSQL でサポートされている CONVERT関数は、
    「明示的なエンコーディング変換」の為のようだから
    文字列→数値変換は出来ないのと、書式も
    7.2では
    convert(string text, [src_encoding name,] dest_encoding name)
    7.3ではさらにSQL標準のCONVERT関数が使えるようですが
    SQL標準のCONVERTは PostgreSQL の CONVERTと機能はほとんど
    同じですが,呼び出し形式が異ります.とあります。
    convert(string using conversion_name)
    と using 方式のようです。

    ここで言うSQL標準とは SQL99関数のことで



    桐のやつは、ODBC標準関数だから、それぞれ違いが
    あるようです。

    ODBC標準関数は
    {fn CONVERT(str, SQL_DOUBLE)}
    と言うような記述で ODBC に発行されます。

    このODBC標準関数を ODBCドライバなり SQLサーバなりが
    自分の持ち合わせている関数および書式に置き換えて
    実際のサーバでは処理されます。

    PostgreSQL の ODBCドライバは、この {fn } を何も処理
    しないで、そのままサーバに渡しています。
    そして、PostgreSQL サーバは {fn } を無視して、その
    ままの形で処理しているようです。で、自分にあわないと
    エラーになります。

    MySQL の ODBCドライバやサーバ内部の処理は私にはわかり
    ません。 (^^;


引用返信 [メール受信/OFF] 削除キー/
■5354 / inTopicNo.4)  Re[3]: 外部dbでのデータ型変更関数
□投稿者/ うにん -(2009/11/13(Fri) 15:13:12)
    > 桐のやつは、ODBC標準関数だから、それぞれ違いが
    > あるようです。
    >
    > ODBC標準関数は
    > {fn CONVERT(str, SQL_DOUBLE)}
    > と言うような記述で ODBC に発行されます。

    ですよねえ?しかしなぜかmysqlもpgsqlも

    > このODBC標準関数を ODBCドライバなり SQLサーバなりが
    > 自分の持ち合わせている関数および書式に置き換えて
    > 実際のサーバでは処理されます。

    これをさぼっているような感じで?

    > PostgreSQL の ODBCドライバは、この {fn } を何も処理
    > しないで、そのままサーバに渡しています。
    > そして、PostgreSQL サーバは {fn } を無視して、その
    > ままの形で処理しているようです。で、自分にあわないと
    > エラーになります。

    #ユーザー名もuser()の()が余分でだめだった。軒並使えない。

    > MySQL の ODBCドライバやサーバ内部の処理は私にはわかり
    > ません。 (^^;

    これもサーバのquery.logに{fn〜〜がそのまま記録されていた。エラーから見ると
    SQL_〜〜のところだけDECIMALとかになってくれれば通りそうなんだけど。

引用返信 [メール受信/OFF] 削除キー/
■5356 / inTopicNo.5)  Re[4]: 外部dbでのデータ型変更関数
□投稿者/ 尾形 -(2009/11/13(Fri) 18:03:01)
    どうも、ありがとうございます

    > 軒並使えない
    ですよねぇ
    あまりにもだったので、自分の使い方がダメなのか
    と思いお尋ねした次第です


    色々おきすぎ orz

引用返信 [メール受信/OFF] 削除キー/
■5365 / inTopicNo.6)  Re[5]: 外部dbでのデータ型変更関数
□投稿者/ うにん -(2009/11/16(Mon) 12:02:12)
    >>軒並使えない
    > ですよねぇ

    .mdbでやったら、#NUMと#STRは使えた。#ユーザ名や#円周率はだめ。
    計算は外部DB側でやっておかないとだめですねえ。

    混用できなくていいから計算項目は桐の関数を使えるようにできないのかなあ。

引用返信 [メール受信/OFF] 削除キー/
■5366 / inTopicNo.7)  Re[4]: 外部dbでのデータ型変更関数
□投稿者/ hidetake -(2009/11/16(Mon) 12:19:59)
    > #ユーザー名もuser()の()が余分でだめだった。軒並使えない。

    {fn ・・・} の形式も ODBC経由で無いと通らないのかな!?
    良くわかっていませんが、PostgreSQL の 7.2 と 8.1 に対し
    user [user()] 関数をいくつかの手段で実行した結果です。

    pgAdminII は ODBC経由だけど pgAdminIII は ODBCを必要と
    しないネイティブ接続の違いも出て来るようです。

    -----------------------------------------------
    PostgreSQL7.2 PostgreSQL8.1
    -----------------------------------------------
    pgAdminIIでSQL実行
    select user ○ −
    select user() ○ −
    select {fn user} × −
    select {fn user()} ○ −
    -----------------------------------------------
    pgAdminIIIでSQL実行
    select user − ○
    select user() − ×
    select {fn user} − ×
    select {fn user()} − ×
    -----------------------------------------------
    ADODB経由でSQL実行
    select user ○ ○
    select user() ○ ×
    select {fn user} × ×
    select {fn user()} ○ ○
    -----------------------------------------------
    psqlでSQL実行
    select user ○ ○
    select user() ○ ×
    select {fn user} × ×
    select {fn user()} × ×
    -----------------------------------------------


引用返信 [メール受信/OFF] 削除キー/
■5369 / inTopicNo.8)  Re[5]: 外部dbでのデータ型変更関数
□投稿者/ うにん -(2009/11/16(Mon) 13:32:06)
http://www.postgresql.jp/document/pg721doc/user/functions-misc.html
    PostgreSQL の 7.2 だと user()で通ってるケースがあるみたいですが、
    7.2.3のユーザガイドで「後ろに丸括弧を付けずに呼ばれる必要があります。」と
    明記されてるので、 ODBC経由が関係しているようです。

引用返信 [メール受信/OFF] 削除キー/
■5370 / inTopicNo.9)  Re[6]: 外部dbでのデータ型変更関数
□投稿者/ hidetake -(2009/11/16(Mon) 13:44:24)
    > PostgreSQL の 7.2 だと user()で通ってるケースがあるみたいですが、
    > 7.2.3のユーザガイドで「後ろに丸括弧を付けずに呼ばれる必要があります。」と
    > 明記されてるので、 ODBC経由が関係しているようです。
    >

    {fn user()} だと、ODBC経由で通って良さそうなのに
    何故にサポートされていない関数だとなるのか良く
    わからないのですよね。どこで拒否されているのだろう
    かと。


引用返信 [メール受信/OFF] 削除キー/
■5373 / inTopicNo.10)  Re[7]: 外部dbでのデータ型変更関数
□投稿者/ うにん -(2009/11/16(Mon) 17:15:05)
http://www.postgresql.jp/document/pg721doc/user/functions-misc.html
    > {fn user()} だと、ODBC経由で通って良さそうなのに
    > 何故にサポートされていない関数だとなるのか良く
    > わからないのですよね。どこで拒否されているのだろう
    > かと。

    FileMakerでやったら、userと{fn user()}はOKだった。user()と{fn user}はだめ。
    (FMはSQLを丸ごと投げて実行結果をインポートできる。)
    桐がシステム関数一覧を取得してるような感じだけどログを見てもよくわからない。
引用返信 [メール受信/OFF] 削除キー/
■5374 / inTopicNo.11)  Re[8]: 外部dbでのデータ型変更関数
□投稿者/ hidetake -(2009/11/17(Tue) 08:00:34)
    > ログを見てもよくわからない。

    そうなのですよ。

    お節介モードも良いけど、それだけでは制限が大きすぎるので
    自由度も欲しいです。


引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

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

- Child Tree -
- Antispam Version -