[seasar-dotnet:684] Re: [S2Dao.NET]BLOB列のEntity定義について

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2007年 11月 27日 (火) 22:32:35 JST


杉本です。

meiさん、ありがとうございます。

ということは、吉田さんがOracleClientでうまくいかなかったのは、
Oracleのバージョンか何かかもしれませんねぇ。

07/11/27 に mei さんは書きました:
> こんばんは、meiです。
>
> 383KBのjpgファイルを挿入して取得しなおしてみましたが、
> 問題なく取得出来ました。
>
> 一応、テストコードを書いておきます。
>
> -- ここから
>    IUserDao userDao = container.GetComponent (typeof (IUserDao)) as
> IUserDao;
>
>    string filename = "xxx.jpg"; // 383KBのjpg
>    User user = new User ();
>    user.Name = "mei";
>    user.Age = 0;
>    BinaryReader br = new BinaryReader (new FileStream
> (filename,FileMode.Open));
>    user.Item = br.ReadBytes ((int)br.BaseStream.Length);
>    br.Close ();
>    userDao.Insert (user);
>
>    IList list = userDao.Select ("mei");
>    foreach (User u in list)
>    {
>        FileStream fs = new FileStream ("temp.jpg", FileMode.CreateNew);
>        fs.Write (u.Item, 0, u.Item.Length);
>        fs.Close ();
>    }
> -- ここまで
>
> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Kazuya Sugimoto
> Sent: Tuesday, November 27, 2007 4:53 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [seasar-dotnet:677] Re: [S2Dao.NET]BLOB列のEntity定義について
>
> 杉本です。
>
> meiさん、ありがとうございます。m(_ _)m
>
> よろしければ8000バイト以上のデータで試してもらえないでしょうか?
>
> 07/11/27 に mei<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > こんにちは、meiです。
> >
> > OracleClientで実験してみました。
> >
> > // Entity
> >    [Table("Users")]
> >    public class User
> >    {
> >        private string name;
> >        public string Name
> >        {
> >            get { return name; }
> >            set { name = value; }
> >        }
> >
> >        private int age;
> >        public int Age
> >        {
> >            get { return age; }
> >            set { age = value; }
> >        }
> >
> >        private byte[] item;
> >        public byte[] Item
> >        {
> >            get { return item; }
> >            set { item = value; }
> >        }
> >    }
> >
> > テーブルは
> > create table Users (name varchar2(32) primary key, age number not null,
> > image blob);
> > で、作成しています。
> >
> > で、実行したコードは、
> >
> >    IUserDao userDao = container.GetComponent (typeof(IUserDao)) as
> > IUserDao;
> >
> >    User user = new User ();
> >    user.Name = "mei";
> >    user.Age = 0;
> >    user.Item = Encoding.Default.GetBytes ("Hello, World");
> >    userDao.Insert (user);
> >
> >    IList list = userDao.Select ("mei");
> >    foreach (User u in list)
> >        Console.WriteLine ("Name={0}, Age={1}, Image={2}", u.Name, u.Age,
> >                           Encoding.Default.GetString (u.Item));
> >
> > これだと、問題なく挿入したデータが取得できますね。
> > あとは、どんなパターンを試してみれば良いですか?
> >
> >
> > -----Original Message-----
> > From: [E-MAIL ADDRESS DELETED]
> > [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Kazuya Sugimoto
> > Sent: Tuesday, November 27, 2007 10:39 AM
> > To: [E-MAIL ADDRESS DELETED]
> > Subject: [seasar-dotnet:674] Re: [S2Dao.NET]BLOB列のEntity定義について
> >
> > 杉本です。
> >
> > Object型での検証ありがとうございます。
> >
> > System.Data.DbType.ObjectからOracleType.Blobに推測されるとあったので、
> > Object型でいくかと思ったのですが・・Oracle詳しい人助けてください・・
> > http://msdn2.microsoft.com/ja-jp/library/bbw6zyha(VS.80).aspx
> >
> > OracleClientだとS2Dao.NETだと無理で、OracleLobクラスを使わないと
> > いけないのかもしれませんね。
> > http://msdn2.microsoft.com/ja-jp/library/cydxhzhz(vs.80).aspx
> >
> > ODP.NETの方ですが、念のため8,000バイト(2,000 バイトで良いのかな?)
> > を超えるデータも試しておいてください。
> >
> >
> > 07/11/27 に Takafumi Yoshidaさんは書きました:
> > > いつもお世話になります。吉田@オプティクスです。
> > >
> > > 返事が遅くなりまして、すいません。
> > >
> > > 07/11/25 に Kazuya Sugimoto<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > >ちなみにデータプロバイダはODP.NETですか?
> > > いいえ。
> > > System.Data.OracleClientを使用しています。
> > >
> > > ODP.NETに変えてみたところ、正常に動作しているようです。
> > >
> > > > 型をObjectにして、そこにバイト配列をセットして、試してもらえませんか?
> > >
> > > この場合ODP.NETでもSystem.Data.OracleClientでもエラーとなり、正しく動作
>> > ません
> > > でした。
> > >
> > > 以上、宜しくお願いいたします。
> > >
> > > |--------||--------||--------||--------||--------||--------|
> > > 有限会社オプティクス
> > > 700-0971
> > > 岡山県岡山市野田3-1-18 安田ビル5F
> > > TEL:086-246-9321
> > > FAX:086-246-5117
> > > http://www.optics-net.com
> > > mail:[E-MAIL ADDRESS DELETED]
> > > gmail:[E-MAIL ADDRESS DELETED]
> > > |--------||--------||--------||--------||--------||--------|
> >
> >
> >
> > --
> > Kazuya Sugimoto
> > Microsoft MVP Visual Developer - Solutions Architect
> > http://d.hatena.ne.jp/sugimotokazuya/
> > _______________________________________________
> > seasar-dotnet mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> >
> > _______________________________________________
> > seasar-dotnet mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> >
>
>
> --
> Kazuya Sugimoto
> Microsoft MVP Visual Developer - Solutions Architect
> http://d.hatena.ne.jp/sugimotokazuya/
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


-- 
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/


seasar-dotnet メーリングリストの案内