Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизКак предотвратить "обрезание" полей? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.043 c