2017-08-04 5 views

答えて

1

複数の方法があります。そのような方法の1つは次のとおりです。 LONCHAR変数をチャンクに分割し、チャンクで表示します。しかし、CHARACTER変数は32000文字を超えることはできません(実際には32000文字よりわずかに少ない)ので、LONGCHAR全体を単一のCHARACTER変数に格納して表示することはできません。

DEF VAR l_var AS LONGCHAR. 
DEF VAR chunk_size AS INT64 INIT 30000. 
DEF VAR tot_size AS INT INIT 0. 

DEF VAR char_piece AS CHAR. 

COPY-LOB FROM FILE "myfile.txt" TO l_var. 

DO WHILE tot_size < LENGTH(l_var): 
    char_piece = SUBSTR(l_var,1,chunk_size,"character"). 
    MESSAGE char_piece. 
    tot_size = tot_size + chunk_size. 
END. 

私が知る限り、データベースにLONGCHARフィールドを持つことはできません。

+0

データベース内にBLOB/CLOBフィールドを持つことができ、ABLの対応するフィールドはLONG​​CHARである可能性があります。 – Jensd

+0

はい私のフィールドはBLOB/CLOBだった...ありがとう – progress

1

実際にはLONG​​CHARSを出力できます。私は実用的ではないかもしれませんが(変数の内容に依存します)、それは可能です。

基本ABLでは、「view-as editor large」でlongcharを表示できます。次に、行数と幅を文字数で設定する必要があります。

DEFINE VARIABLE c AS LONGCHAR NO-UNDO. 

c = FILL("a", 20000). 

DISPLAY c VIEW-AS EDITOR LARGE INNER-LINES 60 INNER-CHARS 100 WITH FRAME f1 WIDTH 120. 

Webspeedで出力することができ、{& OUT-LONG}プリプロセッサを使用して容易にwebstream LONGCHAR。

{&OUT-LONG} variableName. 
関連する問題