Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Как предотвратить "обрезание" полей?   Найти похожие ветки 

 
SergP.   (2006-09-06 12:54) [0]

ADO, Oracle

Есть запрос...
select lpad(nvl(cod_regdoc,0),14)||rpad(nvl(c_doc_rowc,""),15)||lpad(nvl(zn,""),40) from table

Должен возвращать данные в виде (на примере):

14550000084684^HNAME                                    Рога и Копыта
13220000084672^HBUH                                       Пупкин В.В.
16030000084672^HBOS                                      Пупкина М.И.


Выполняя запрос в SQLPlus или SQL Nafigator я получаю то что мне требуется, но если запускаю его через TADODataSet, то получаю обрезанные данные:


14550000084684^HNAME
13220000084672^HBUH
16030000084672^HBOS


По крайней мере в:

...
var
d:string;
...
d:=AdoDataSet.Fields[0].AsString+#13#10;
...

после этого в переменной D обрезанное значение поля.
В чем может быть проблема


 
ANB ©   (2006-09-06 12:56) [1]


> SergP.   (06.09.06 12:54)

Проверить длинну поля в настройках AdoDataSet. Это он режет, т.к. хреново заранее определяет.


 
SergP.   (2006-09-06 13:00) [2]

> [1] ANB ©   (06.09.06 12:56)
>
> > SergP.   (06.09.06 12:54)
>
> Проверить длинну поля в настройках AdoDataSet. Это он режет,
> т.к. хреново заранее определяет.


Что-то не нашел где проверить...
Да и задать его как-то можно?


 
ANB ©   (2006-09-06 13:01) [3]


> SergP.   (06.09.06 13:00) [2]

Можно. В полях. Там где то длина прописывается.
Где точно - не помню, с одаком давно таких проблем не было.


 
ANB ©   (2006-09-06 13:02) [4]

AdoDataSet.Fields[0].


 
ANB ©   (2006-09-06 13:04) [5]

AdoDataSet.Fields[0].DataSize


 
Sergey13 ©   (2006-09-06 13:05) [6]

> [0] SergP.   (06.09.06 12:54)

Что у тебя за задача такая, что ты везде лепишь NVL-ы и PAD-ы? В чем их смысл-то?


 
SergP.   (2006-09-06 13:37) [7]

> [6] Sergey13 ©   (06.09.06 13:05)
> > [0] SergP.   (06.09.06 12:54)
>
> Что у тебя за задача такая, что ты везде лепишь NVL-ы и
> PAD-ы? В чем их смысл-то?


Нужно выдернуть данные из нескольких таблиц и сохранить их в файле в требуемом формате, в данном случае одна строка представляет то что и значение поля (единственного) в этой выборке. Проще в селекте напихать NVL-ы и PAD-ы чем потом в Дельфях что-то мутить...
А формат не я придумывал и есно менять не буду...


 
SergP.   (2006-09-06 13:42) [8]

Удалено модератором


 
ANB ©   (2006-09-06 13:44) [9]


> SergP.   (06.09.06 13:37) [7]

AdoDataSet.Fields[0].DataSize
попробовал ?
Есно, нужно завести поле ДО опена и сразу сделать его подлиннее.
Для очистки совести сначала проконтролируй, чего там записано после открытия.


 
SergP.   (2006-09-06 13:52) [10]

Удалено модератором


 
SergP.   (2006-09-06 13:52) [11]

Удалено модератором


 
SergP.   (2006-09-06 13:53) [12]

Удалено модератором


 
SergP.   (2006-09-06 14:06) [13]

> [6] Sergey13 ©   (06.09.06 13:05)
> > [0] SergP.   (06.09.06 12:54)
>
> Что у тебя за задача такая, что ты везде лепишь NVL-ы и
> PAD-ы? В чем их смысл-то?


Нужно выдернуть данные из нескольких таблиц и сохранить их в файле в требуемом формате, в данном случае одна строка представляет то что и значение поля (единственного) в этой выборке. Проще в селекте напихать NVL-ы и PAD-ы чем потом в Дельфях что-то мутить...
А формат не я придумывал и есно менять не буду...


> [1] ANB ©   (06.09.06 12:56)
>
> > SergP.   (06.09.06 12:54)
>
> Проверить длинну поля в настройках AdoDataSet. Это он режет,
> т.к. хреново заранее определяет.


М-да... Извиняюсь... Это я оказывается затупил в самом запросе. Вернее не учел что апострофы в строке запроса поудваивать нужно...

CommandText:="select lpad(nvl(cod_regdoc,0),14)||rpad(nvl(c_doc_rowc,""""),15)||lpad(nvl(zn,""""),40)

Странно только что сам запрос сработал...


 
SergP.   (2006-09-06 14:06) [14]

Удалено модератором


 
SergP.   (2006-09-06 14:06) [15]

Удалено модератором


 
SergP.   (2006-09-06 14:06) [16]

Удалено модератором


 
SergP.   (2006-09-06 14:06) [17]

Удалено модератором


 
SergP.   (2006-09-06 14:07) [18]

Удалено модератором


 
SergP.   (2006-09-06 14:07) [19]

Удалено модератором


 
SergP.   (2006-09-06 14:07) [20]

Удалено модератором


 
SergP.   (2006-09-06 14:07) [21]

Удалено модератором
Примечание: следи за руками, чтобы не дрожали на мышке отправляя пост по  нескольку раз...


 
SergP.   (2006-09-06 15:44) [22]

> [6] Sergey13 ©   (06.09.06 13:05)
> > [0] SergP.   (06.09.06 12:54)
>
> Что у тебя за задача такая, что ты везде лепишь NVL-ы и
> PAD-ы? В чем их смысл-то?


Нужно выдернуть данные из нескольких таблиц и сохранить их в файле в требуемом формате, в данном случае одна строка представляет то что и значение поля (единственного) в этой выборке. Проще в селекте напихать NVL-ы и PAD-ы чем потом в Дельфях что-то мутить...
А формат не я придумывал и есно менять не буду...


> [1] ANB ©   (06.09.06 12:56)
>
> > SergP.   (06.09.06 12:54)
>
> Проверить длинну поля в настройках AdoDataSet. Это он режет,
> т.к. хреново заранее определяет.


М-да... Извиняюсь... Это я оказывается затупил в самом запросе. Вернее не учел что апострофы в строке запроса поудваивать нужно...

CommandText:="select lpad(nvl(cod_regdoc,0),14)||rpad(nvl(c_doc_rowc,""""),15)||lpad(nvl(zn,""""),40)


 
SergP.   (2006-09-06 15:46) [23]

> [21] SergP.   (06.09.06 14:07)
> Удалено модератором
> Примечание: следи за руками, чтобы не дрожали на мышке отправляя
> пост по  нескольку раз...


Извиняюсь... Это GPRS тупит, либо спутник, ну и глобакс сам "напостил"...



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.04 c
15-1161323122
ZeroDivide
2006-10-20 09:45
2006.11.05
Где то в доме течет труба... затапливает потолок... :(


3-1157530066
DelphiLexx
2006-09-06 12:07
2006.11.05
OnSetText на Lookup поле - возникают проблемы


15-1160590597
стьюдентЪ
2006-10-11 22:16
2006.11.05
Что вы делаете для души ?


2-1161085423
L15
2006-10-17 15:43
2006.11.05
Создание Теста на Делфи


1-1159148047
Lex_!
2006-09-25 05:34
2006.11.05
Перненос данных в Excel шаблон.