Имя: Пароль:
1C
1C 7.7
v7: изменение запроса к внешней базе!!!
0 Последняя_
Надежда
 
13.12.11
11:36
Есть некая интеграция 1с с базой firebird.
в 1с подгружаются данные из нее.
была вот такая строка
Скидка = RecordSet_MT_DOCS.Fields.Item("VDISCONT").Value;
после обновления параметр стал дробным.
поле VDISCONT теперь типа NUMERIC(15,2)
Необходимо в этом запросе значение поля VDISCONT выбирать следующим образом: ROUND(CAST(VDISCONT as float),2) as VDISCONT
записала вот так:
Скидка = RecordSet_MT_DOCS.Fields.Item("round(cast(VDISCONT as float),2) as VDISCONT").Value;
Не работает (((
1 ДенисЧ
 
13.12.11
11:39
Запрос нужно менять, а не место, где получаются данные...
Покажи, откуда берётся RecordSet_MT_DOCS
2 Последняя_
Надежда
 
13.12.11
11:41
СтрокаЗапроса = "
       |SELECT MASTER_KID, VDIST_CLIENT_ID, VSHIPPING_DATE, VREM, VDATE, VDISCONT /*нужно поставить конкретные значения!!*/
       | FROM MT_DOCS
       | WHERE
       | (DID is null)
       | AND (VDATE >= " + "'" + Строка(ДатаНачалаЗагрузкиЗаявок)+"') AND (VDATE <= " + "'" + Строка(ДатаОкончанияЗагрузкиЗаявок)+"')
       | AND (RDOC_TYPE=1) /*RDOC_TYPE=1 --заявка, RDOC_TYPE=2 --накладная*/
       | AND (RSTATE=2)
       |;";
3 Последняя_
Надежда
 
13.12.11
11:42
(2) ожет куда-то сюда?
4 Последняя_
Надежда
 
13.12.11
11:42
других упоминаний VDISCONT  не нашла в обработке
5 ДенисЧ
 
13.12.11
11:44
дык... Именно сюда...
6 Последняя_
Надежда
 
13.12.11
11:46
(5) перед запятой начиная с AND ?
7 ДенисЧ
 
13.12.11
11:49
(6) нет, в первой строчке, где select ... VDISCONT
Заменить VDISCONT на выражение
8 ДенисЧ
 
13.12.11
11:49
и поставить AS VDISCONT
9 Последняя_
Надежда
 
13.12.11
11:50
(8) так ?
|SELECT MASTER_KID, VDIST_CLIENT_ID, VSHIPPING_DATE, VREM, VDATE, ROUND(CAST(VDISCONT as float),2) as VDISCONT
10 ДенисЧ
 
13.12.11
11:51
где-то так.
11 Последняя_
Надежда
 
13.12.11
11:59
Работает! Спасибо! а то больная голова вообще не соображает.