Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Страницы:   1 2

SergP. ©   (2006-09-06 12:54:00) 

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 обрезанное значение поля.
В чем может быть проблема


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

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


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


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

> [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:07:00) [3]

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

> [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 13:53:00) [12]

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


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

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


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

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


ANB   (2006-09-06 13:44:00) [15]


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

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


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

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


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

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


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


Sergey13   (2006-09-06 13:05:00) [18]

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

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


ANB   (2006-09-06 13:04:00) [19]

AdoDataSet.Fields[0].DataSize


ANB   (2006-09-06 13:02:00) [20]

AdoDataSet.Fields[0].


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо