2014-01-12 2 views
0

Как получить данные в java из поля memo, я использую базу данных прогресса. Но это дает ошибку:Как получить данные в java из поля memo с использованием базы данных выполнения

[DataDirect-Technologies][ODBC PROGRESS driver][PROGRESS]Column Doc_Desc in table PUB.GLDOCHDR has value exceeding its max length or precision. 

писал код, как этот SQL:

selectSQL="select Doc_Desc from PUB.GLDOCHDR where Doc_Desc like '%:%' and Doc_Desc like '%@%'"; 

Получение данных, как это:

rs = stmt.executeQuery(selectSQL); 
while(rs.next()) 
{ 
    BufferedReader br = new BufferedReader(new InputStreamReader(rs.getAsciiStream("Doc_Desc")));     
    System.out.println(br.readLine()); 
} 

ответ

1

Прогресс (OpenEdge) имеет два "личности" - SQL и 4GL.

Двигатель 4GL (или «ABL») наиболее часто используется, и ему все равно, насколько широким является поле. Все данные имеют переменную ширину. Ширина - всего лишь предпосылка для форматирования отображения и обычно игнорируется программистами.

Естественно, это дает инструменты SQL.

Для облегчения боли используется инструмент, который «сканирует базу данных и корректирует« sql-width », чтобы отразить фактическую максимальную ширину, которую он находит в данных. Обычно это выполняется регулярно (обычно еженедельно или ежемесячно) в большинстве магазинов Progress, где используется SQL.

http://knowledgebase.progress.com/articles/Article/P24496

http://knowledgebase.progress.com/articles/Article/P159769