[pgsql-jp: 38824] Re: Excel VBA + ODBC接続でデータ取得で、先頭1桁を返す場合がある?

藤澤 qsecofr1 @ hotmail.com
2007年 9月 27日 (木) 15:33:46 JST


堂前さん

ありがとうございます。
varchar(3) に変更すると、正しく表示されました。
----------------------------------------
ALTER TABLE t1
ALTER COLUMN c1 TYPE VARCHAR(3);
----------------------------------------

ですが。。。
投稿したVBAは、実運用テーブルから値を取得するツールで使用する予定
なのです。なので、テーブルの桁数を増やすという訳にいかないです。


ちなみに、
SELECT文を修正して、
    strSql = "SELECT '''' || c1 AS c1, '''' || c1 AS c2, '''' || c3 AS c3 FROM t1" 
とか
    strSql = "SELECT 'a' || c1 AS c1, 'a' || c1 AS c2, 'a' || c3 AS c3 FROM t1" 
とすると、正常に取得できました。
先頭のシングルクォーテーションや a は後から除去します。
追加情報です。


## ん?システムでは、ASP.NET2.0 でODBC接続で値を取得しているけど、
## こっちも確認せなマズイ!!  (ひとりごと)


/藤澤



On Thu, 27 Sep 2007 14:40:46 +0900 (JST)
Yutaka Doumae <doumae @ joy.ocn.ne.jp> wrote:

> 堂前です
> 
> 藤澤さん wrote:
> 
> > ■テーブルとデータの作成
> > hoge=> create table t1 (
> > hoge(>   c1 varchar(2),
> > hoge(>   c2 varchar(2),
> > hoge(>   c3 varchar(20)
> > hoge(> );
> > CREATE TABLE
> 
> > hoge(>   c1 varchar(3),
> > hoge(>   c2 varchar(3),
> 
> だとどうでしょう?
> 
> varchar(2) だと 1文字 + '\0' = 2文字じゃないかな?
> 
> -- 
> doumae @ joy.ocn.ne.jp






pgsql-jp メーリングリストの案内