![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как предотвратить "обрезание" полей?
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].