BLOB (TEXT ãŠã‚ˆã³ BYTE カラム)ã®ä½¿ç”¨ã«é–¢ã™ã‚‹æ³¨æ„
通常ã€BLOB ã¯BLOB ID ã«ã‚ˆã‚ŠæŒ‡å®šã•れã¾ã™ã€‚
select クエリーã¯ã€BYTE ãŠã‚ˆã³ TEXT カラム毎㫠"blob id" ã‚’è¿”ã—ã¾ã™ã€‚
( "ifx_blobinfile(0);" ã«ã‚ˆã‚Š) メモリー上㧠BLOB ã‚’å¾—ã‚‹ã“ã¨ã‚’é¸æŠžã—ãŸå ´åˆã€
"string_var = ifx_get_blob($blob_id);" ã§å†…容を得るã“ã¨ãŒã§ãã¾ã™ã€‚
ファイルã‹ã‚‰ BLOB カラムã®å†…容をå–å¾—ã—ãŸã„å ´åˆã€
"ifx_blobinfile(1);" を使用ã—ã¦ä¸‹ã•ã„。
"ifx_get_blob($blob_id);" ã«ã‚ˆã‚Šãƒ•ァイルåã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
BLOB ã®å†…容を得る際ã«ã¯ã€é€šå¸¸ã®ãƒ•ァイル入出力を行ã£ã¦ãã ã•ã„。
insert/update クエリーã«é–¢ã—ã¦ã¯ã€
"ifx_create_blob(..);" ã«ã‚ˆã‚Šè‡ªåˆ†ã§ "blob id" を作æˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
ãã®å¾Œã€blob id ã‚’é…列ã«ä»£å…¥ã—ã€
クエリー文å—列ã®ä¸ã® blob カラムを疑å•符 (?) ã§ç½®æ›ã—ã¾ã™ã€‚
updates/inserts ã®å ´åˆã€ifx_update_blob(...) ã§ blob ã®å†…容をè¨å®šã™ã‚‹
ã®ãŒä¾¿åˆ©ã§ã—ょã†ã€‚
BLOB カラムã®å‹•作ã¯ã€è¨å®šç”¨å¤‰æ•°ã§å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ã“れらã®å¤‰æ•°ã¯ã€å®Ÿè¡Œæ™‚ã«ã‚‚è¨å®šå¯èƒ½ã§ã™ã€‚
è¨å®šå¤‰æ•° : ifx.textasvarchar
è¨å®šå¤‰æ•° : ifx.byteasvarchar
ランタイム関数 :
ifx_textasvarchar(0) : TEXT カラムを有ã™ã‚‹ select クエリー㫠blob
id を使用ã™ã‚‹
ifx_byteasvarchar(0) : BYTE カラムを有ã™ã‚‹ select クエリー㫠blob
id を使用ã™ã‚‹
ifx_textasvarchar(1) : TEXTカラムをVARCHARカラムã¨ã—ã¦è¿”ã—ã¾ã™ã€‚
ã“ã®ãŸã‚ã€selectクエリーã«ãŠã„ã¦blob idを使用ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。
ifx_byteasvarchar(1) : BYTEカラムをVARCHARカラムã¨ã—ã¦è¿”ã—ã¾ã™ã€‚
ã“ã®ãŸã‚ã€selectクエリーã«ãŠã„ã¦blob idを使用ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。
è¨å®šå¤‰æ•° : ifx.blobinfile
ランタイム関数 :
ifx_blobinfile_mode(0) : メモリー㫠BYTE カラムを返ã™, blob id ã«ã‚ˆ
りãã®å†…容をå–り出ã™
ifx_blobinfile_mode(1) : メモリー㫠BYTE カラムを返ã™, blob id ã«ã‚ˆ
りãã®ãƒ•ァイルåã‚’å–り出ã™
ifx_text/byteasvarchar ã‚’ 1 ã«è¨å®šã—ãŸå ´åˆã€
通常ã®(ã—ã‹ã—ã‚„ã‚„é•·ã„) VARCHAR フィールドã®ã‚ˆã†ã«
select クエリー㧠TEXT ã‚„ BYTE カラムを使用ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
å…¨ã¦ã®æ–‡å—列ã¯ã€PHP ã§ "æ•°ãˆã‚‰ã‚Œã‚‹" ã®ã§ã€ã“れã«ã‚ˆã‚Šã€"ãƒã‚¤ãƒŠãƒªãƒ»ã‚»ãƒ¼
フ"ãŒç¶æŒã•れã¾ã™ã€‚
ã“れをæ£ã—ã処ç†ã™ã‚‹ã®ã¯ã‚ãªãŸæ¬¡ç¬¬ã§ã™ã€‚
è¿”ã•れるデータã«ã¯ä½•ã§ã‚‚å«ã‚€ã“ã¨ãŒã§ãã¾ã™ãŒã€ãã®å†…容ã«ã¤ã„ã¦
è²¬ä»»ã‚’è² ã†ã“ã¨ã«ãªã‚Šã¾ã™ã€‚
ifx_blobinfile ã‚’ 1 ã«è¨å®šã—ãŸå ´åˆã€blob ã®å†…容を得るãŸã‚ã«
ifx_get_blob(..) ã«ã‚ˆã‚Šè¿”ã•れãŸãƒ•ァイルåを使用ã—ã¦ä¸‹ã•ã„。
ã“ã®å ´åˆã€è¡Œã‚’å–å¾—ã™ã‚‹éš›ã« Informix ã«ã‚ˆã‚Šä½œæˆã•れãŸãƒ†ãƒ³ãƒãƒ©ãƒªãƒ•ァイル
を削除ã™ã‚‹è²¬ä»»ãŒã‚りã¾ã™ã€‚å–å¾—ã•ã‚ŒãŸæ–°è¦ã®è¡Œã¯ã€BYTE ã‚«ãƒ©ãƒ æ¯Žã«æ–°
è¦ã®ãƒ†ãƒ³ãƒãƒ©ãƒªãƒ•ァイルを作æˆã—ã¾ã™ã€‚
テンãƒãƒ©ãƒªãƒ•ァイルã®ä½ç½®ã¯ã€ç’°å¢ƒå¤‰æ•° "blobdir" ã«ã‚ˆã‚Šè¨å®šã™ã‚‹ã“ã¨
ãŒã§ãã¾ã™ã€‚デフォルトã¯ã€"." (カレントディレクトリ)ã§ã™ã€‚
putenv(blobdir="tmpblob"); ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€èª¤ã£ã¦æ®‹ã£ã¦ã—
ã¾ã£ãŸãƒ†ãƒ³ãƒãƒ©ãƒªãƒ•ァイルを削除ã™ã‚‹ã“ã¨ãŒå®¹æ˜“ã«ãªã‚Šã¾ã™ã€‚(テンãƒãƒ©
リファイルã®åå‰ã¯ "blb" ã§å§‹ã¾ã‚Šã¾ã™)