Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Задача: Есть таблица в MS Access 2000, в ней два числовых поля. Необходимо создать запрос выводящий для каждой записи сумму этих двух полей. Все бы хорошо, но если одно из значений Null, то и вся сумма будет Null В Access все решается просто, с использованием функции Nz(). Т.е. получается запрос вида: SELECT Table1.Field1, Table1.Field2, Nz(Table1.Field1,0)+Nz(Table1.Field2,0) FROM Table1; Но, в Delphi при соединении с данной базой через ADO (провайдер Microsoft Jet 4), если в ADOQuery.SQL создать этот же самый запрос возникает ошибка вида: Неопределенная функция 'Nz' в выражении Если, кто-нибудь сталкивался с данной проблемой и успешно ее решил пожалуйста помогите (очень нужно !). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 22:39 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
А так попробоать: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 22:43 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Нет. Во первых, IsNULL имеет формат IsNull(имя поля). Во вторых возвращает логическое значение (ложь или истина, т.е. 0 или 1), а мне нужна сумма чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 22:20 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Странно, что NZ не работает, вроде через Jet должно. Спросите на форуме по Access. Но если работает isNull(Field), то что мешает сделать IFF(isNull(Field),0,Field) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 22:34 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
а если SELECT Table1.Field1, Table1.Field2, Table1.Field1+Table1.Field2 FROM Table1 Where not IsNull(Table1.Field1) and not IsNull(Table1.Field2); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 22:35 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Re: а если SELECT Table1.Field1, Table1.Field2, Table1.Field1+Table1.Field2 FROM Table1 Where not IsNull(Table1.Field1) and not IsNull(Table1.Field2); Этот запрос возвращает сумму только тех строк где нет пустых занчений. А это не провильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 10:12 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
что-то вы товарищь, singaevskii, путаете - цитата из BOL: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 11:21 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
2IgorK, вот и я тоже там смотрел! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 11:59 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Бол тут ни при чем. Аксесс<>сиквел. Там isnull другая. То singaevskii: С iif тоже не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:54 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Пардон. SELECT Table1.Field1, Table1.Field2, Table1.Field1+Table1.Field2 FROM Table1 Where Table1.Field1 is not null and Table1.Field2 is not null union all SELECT Table1.Field1, Table1.Field2, Table1.Field1 FROM Table1 Where Table1.Field1 is not null and Table1.Field2 is null union all SELECT Table1.Field1, Table1.Field2, Table1.Field2 FROM Table1 Where Table1.Field1 is null and Table1.Field2 is not null Во, без функций вообще, но коряво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:58 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
А почему нельзя сделать так? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 16:17 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Спасибо Serge_S. Этот запрос в дельфе действительно работает. Правда слишком громоздко. (ведь на самом деле таблиц в реальной базе не две) Может быть что-то можно сделать с провайдером ADO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 21:59 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Да, можно - не пользоваться :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 22:43 |
|
||
|
Задача для знатаков Delphi,Ms Access и технологии ADO
|
|||
|---|---|---|---|
|
#18+
Попробуйте использовть функцию iif: SELECT Table1.Field1, Table1.Field2, iif(Table1.Field1 is null,0,Table1.Field1)+iif(Table1.Field2 is null,0,Table1.Field2) FROM Table1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2003, 09:06 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32175704&tid=2118065]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 378ms |

| 0 / 0 |
