Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Доброго всем дня!
Собственно сабж - на форме два ДВ, при событии OPEN для формы, одно делает ретриеве, а второе нет.
Причем даже если убрать первое которое раньше было всегда и работало, второе все равно не отрабатывает :(
ПБ 9.0.3
В ДВ выполняется обычный sql запросик, ни ошибки, ничего нет... просто не открывает, как будто ложил ПБ на мой ретриев.

Что за ерунда такая?
26 дек 08, 16:06    [6626151]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
стало известно больше - на новом окне сделал новый ДВ, делаю ретрив - и НИЧЕГО, отдельно делаю ретрив и тоже ничего...
но когда делаю ретрив из дизайнера - все работает
26 дек 08, 16:46    [6626492]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
SetTransObject
26 дек 08, 16:52    [6626531]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
есть такое, не катит оно..
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve(d1,d2)

dw_2.SetTransObject(SQLCA)
dw_2.Retrieve(d1,d2)
на первом дв проходит, а на втором нет
26 дек 08, 16:56    [6626571]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
maxATC
Member

Откуда:
Сообщений: 279
Imperous
есть такое, не катит оно..
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve(d1,d2)

dw_2.SetTransObject(SQLCA)
dw_2.Retrieve(d1,d2)
на первом дв проходит, а на втором нет

Посмотри, что возвращает.
0 или -1, если 0 то не ретрив ни одной строки, -1 ошибка
Совпадают ли параметры с d1 и d2 с аргументами в DW ?
26 дек 08, 18:27    [6627152]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
sPaul
Member

Откуда: Moscow
Сообщений: 387
Imperous
стало известно больше - на новом окне сделал новый ДВ, делаю ретрив - и НИЧЕГО, отдельно делаю ретрив и тоже ничего...
но когда делаю ретрив из дизайнера - все работает
Вероятно в дизайнере один источник данных, приложение пользует другой.
26 дек 08, 18:33    [6627170]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
maxATC
Imperous
есть такое, не катит оно..
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve(d1,d2)

dw_2.SetTransObject(SQLCA)
dw_2.Retrieve(d1,d2)
на первом дв проходит, а на втором нет

Посмотри, что возвращает.
0 или -1, если 0 то не ретрив ни одной строки, -1 ошибка
Совпадают ли параметры с d1 и d2 с аргументами в DW ?


параметры одинаковые.
что возвращает надо будет с работы посмотреть.
28 дек 08, 11:53    [6629700]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
sPaul
Imperous
стало известно больше - на новом окне сделал новый ДВ, делаю ретрив - и НИЧЕГО, отдельно делаю ретрив и тоже ничего...
но когда делаю ретрив из дизайнера - все работает
Вероятно в дизайнере один источник данных, приложение пользует другой.

возможно разные источники! но, почему тогда ни одной ошибки или уведомления ПБ не дает???
28 дек 08, 11:54    [6629701]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Сказали же
Посмотри, что возвращает.
0 или -1, если 0 то не ретрив ни одной строки, -1 ошибка
Совпадают ли параметры с d1 и d2 с аргументами в DW ?
Открой dw в паинтере и проверь что оно возвращает с этими аргументами
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
29 дек 08, 10:49    [6631191]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
dw_2.SetTransObject(SQLCA)
возвращает "1"
dw_2.Retrieve(d1,d2)
возвращает "4"
29 дек 08, 11:11    [6631311]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
ну вот, в пэйнтере возврат нулевой, что запуском процедуры, что селектом...
29 дек 08, 11:49    [6631573]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Подключился через open client - в пейнтере работает...
Но мне надо через ODBC
29 дек 08, 12:07    [6631666]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
maxATC
Member

Откуда:
Сообщений: 279
Imperous
dw_2.SetTransObject(SQLCA)
возвращает "1"
dw_2.Retrieve(d1,d2)
возвращает "4"


Ну вот и получается, что у тебя ретрив работает, возвратило 4 строки, а почему не отображает?
29 дек 08, 12:36    [6631883]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
В чем был весь фокус непонятно, в запросе я изменил один момент и после этого все заработало
Момент:
...
where ... and (pol1.kol_vo = null or pol1.kol_vo = 0)
...
поменял на
...
where ... and (pol1.kol_vo is null or pol1.kol_vo = 0)
...
29 дек 08, 12:42    [6631933]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
maxATC
Member

Откуда:
Сообщений: 279
Imperous
В чем был весь фокус непонятно, в запросе я изменил один момент и после этого все заработало
Момент:
...
where ... and (pol1.kol_vo = null or pol1.kol_vo = 0)
...
поменял на
...
where ... and (pol1.kol_vo is null or pol1.kol_vo = 0)
...

Фокус как раз и понятен, неправильное сравнение с null, ух таковы правила.
29 дек 08, 13:24    [6632259]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Dim2000
Member

Откуда: Москва
Сообщений: 5318

Imperous пишет:

> pol1.kol_vo = null

Рваный баян: с Null на равенство/неравенство сравнивать нельзя. Гнать
тебя нужно... пинками...

Posted via ActualForum NNTP Server 1.4

29 дек 08, 13:25    [6632262]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Только ASE к которой подключается ПБ нормально работает с "="
29 дек 08, 13:30    [6632295]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Dim2000
Member

Откуда: Москва
Сообщений: 5318

Imperous пишет:

> Только ASE к которой подключается ПБ нормально работает с "="

Это проблема ASE.

Posted via ActualForum NNTP Server 1.4

29 дек 08, 13:31    [6632307]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Неправда, на ASE "= null" не работает и не может верно отрабатывать по определению
Так пишется только когда
update table1 set col1 = null - в этом случае запись верна
В вашем случае (для ASE)
IsNull(pol1.kol_vo,0) = 0
для Oracle
nvl(pol1.kol_vo,0) = 0
Но это везде так, еще скажи что null=null верное выражение?!!!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
29 дек 08, 13:40    [6632364]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
[quot spas2001]Неправда, на ASE "= null" не работает и не может верно отрабатывать по определению
Так пишется только когда
update table1 set col1 = null - в этом случае запись верна
В вашем случае (для ASE)
IsNull(pol1.kol_vo,0) = 0
для Oracle
nvl(pol1.kol_vo,0) = 0
Но это везде так, еще скажи что null=null верное выражение?!!!

ase 12.5 - работает, на других не знаю
29 дек 08, 14:30    [6632777]     Ответить | Цитировать Сообщить модератору
 Re: Как заставить срабатывать ItemChanged?  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Тогда не возмущайтесь, что запрос не работает...
В этом случае ответ нестабилен, зависит от клиента, синтаксис выражения неверен, что же вы хотите?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
29 дек 08, 15:00    [6633007]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Imperous
null=null

ase 12.5 - работает


Не верю. Докажите.
29 дек 08, 15:28    [6633229]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
Imperous
Member

Откуда: Оттуда )
Сообщений: 1207
Anatoly Moskovsky
Imperous
null=null

ase 12.5 - работает


Не верю. Докажите.

не null = null , а таблица.поле = null
29 дек 08, 17:48    [6634177]     Ответить | Цитировать Сообщить модератору
 Re: Два ДВ, при OPEN одно делает ретриеве, а второе нет  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
To 18-я весна
Работает, через его клиент. То ли как фичу это рассматривать, но скорее как баг
То Imperous
А насчет null = null почитай, полезно будет, заодно поймешь почему
а таблица.поле = null
неправильное выражение
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
29 дек 08, 17:56    [6634224]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить