[seasar-dotnet:2494] Re: DBFlute.Net SQLServerのFileTableについて
志水正幸
[E-MAIL ADDRESS DELETED]
2016年 5月 29日 (日) 10:20:15 JST
志水です。
久保さんこんにちは。
毎度ありがとうございます。
>コンパイルエラーは、
>DBFluteがbyte[]型のFKキーをサポートしていないので、
>byte[]型のParentPathLocatorやPathLocatorが
>FKのキーカラムになっていることで発生していると考えられます。
そうですか。では仕方ないですね。
>ちなみに、そららカラムが hierarchyid という型になってますが、
>FileTableと関連の型でしょうか?
はいそうです。FileTableのカラムはSQLServerの仕様で
使う側は、正味、実ファイルの格納場所とテーブル名が決められる程度みたいです。
>また、ChokyoFileTable へのFKを明示的に付与しています?
DBFLUTE側ではFKになるような何も設定してません。
現在の状況はというと
とりあえず、エラー箇所はすべてコメントアウトしてエラーを解消しました。
しかし、通常のものは利用できないと思ったので
SELECT,INSERT,UPDATE,DELETEの外だしSQLを作成して試しました。
SELECT時には、DATETIMEOFFSET型カラムでキャストのエラーが発生してしまうので
DATETIME2にCONVERTするSQLに変更して、必要最小限のカラムを取得する形にすると
SELECTできるようになりました。
次にINSERTを試したのですが、
最小限のFILESTREAMとNAME、IsDirectoryなどのフラグのみ
にしたのですが、SQLServer上では問題ないのですが
アプリ側だとpmb変数がバインドできないというエラーがでて
どうしてもできないので結局ココであきらめました。
-- !df:pmb!
-- !!byte[] filedata!!
-- !!String name!!
-- !!bool? directoryflg!!
-- !!bool? offlineflg!!
-- !!bool? hiddenflg!!
-- !!bool? readonlyflg!!
-- !!bool? archiveflg!!
-- !!bool? systemflg!!
-- !!bool? temporaryflg!!
INSERT INTO ChokyoFileTable
(file_stream
,name
,is_directory
,is_offline
,is_hidden
,is_readonly
,is_archive
,is_system
,is_temporary)
VALUES
(pmb.Filedata
,pmb.Name
,pmb.Directoryflg
,pmb.Offlineflg
,pmb.Hiddenflg
,pmb.Readonlyflg
,pmb.Archiveflg
,pmb.Systemflg
,pmb.Temporaryflg)
たぶん、UPDATEも同様かなと思うので、SELECTのみ使用するか
FileTableは使用するけど、DBFLUTEには含めないようにするかを検討した結果
後者にして、FileTableはSQLSERVER管理下のFILE共有にはなるのでServer自体で共有設定しなくて済むし、
フルテキスト検索が可能になるみたいなので、何かの際に役に立ちそうなのでFileTableの利用は
しとこうかと思ってます。
まぁ、結局、APIで共有接続して、結局昔ながらの実ファイルをごにょごにょして使う形になるかと。。
以上
> 久保(jflute)です
>
> 志水さん、こんにちは
>
> コンパイルエラーは、
> DBFluteがbyte[]型のFKキーをサポートしていないので、
> byte[]型のParentPathLocatorやPathLocatorが
> FKのキーカラムになっていることで発生していると考えられます。
>
> ちなみに、そららカラムが hierarchyid という型になってますが、
> FileTableと関連の型でしょうか?
>
> また、ChokyoFileTable へのFKを明示的に付与しています?
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
seasar-dotnet メーリングリストの案内