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

Откуда:
Сообщений: 12
Извините если повторяюсь. Поиском пользовался нашёл кучу тем подобных, но всё равно не дошло как сделать.
Просьба помочь.

Мне нужно сделать выполнение запроса по таймеру.
время для таймера берётся из singleedit

То есть мне нужно, чтобы запрос с какой-то периодичностью постоянно выполнялся.
15 июн 09, 17:48    [7301716]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
ChV
Member

Откуда: Москва
Сообщений: 271
Не понятен вопрос.
Почитайте Help для объектов Timing.
Какие у него свойства, события, функции.
Ну а далее все просто :
- создаете объект,
- значением из singleedit задаете ему интервал ( this.start( .... ) )
- в event-e "timer" - прописываете выполнение запроса.
.......
Картинка с другого сайта.
Good Luck !
15 июн 09, 18:31    [7302033]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Ну и если нужно, чтобы запрос с какой-то периодичностью постоянно выполнялся, и при этом НЕ БЛОКИРОВАЛ интерфейс, то читайте это...
15 июн 09, 18:35    [7302057]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
nafanya1986
Member

Откуда:
Сообщений: 12
Вы конечно простите такого идиота как я, но не пойму как создать объект

string MyTimer
MyTimer = CREATE string
MyTimer.Start(sle_1.text)

как я понимаю другой тип должен быть, но какой? в хелпе дан uo_timer, но не пашет.
15 июн 09, 21:26    [7302516]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
nafanya1986
Вы конечно простите такого идиота как я

Нет, такое не прощается :-)
15 июн 09, 22:55    [7302693]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
nafanya1986
Member

Откуда:
Сообщений: 12
Ну извините, если что.
Не рублю в этом деле :-(
15 июн 09, 23:11    [7302722]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
nafanya1986
Member

Откуда:
Сообщений: 12
Подскажите, пожалуйста, вот я выполнил запрос, взятый из mle_1

string zapr;
string a;
zapr=mle_1.text
execute immediate :zapr

1) мне нужно single edit'у присвоить результат запроса, как это сделать

пробовал так:

sle_7.text=string(execute immediate :zapr)

не выходит

2) Как всё таки сделать, чтобы по таймеру выполнялся запрос?
16 июн 09, 00:29    [7302885]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
edmikeca
Member

Откуда: Ukraine
Сообщений: 237
Может это?
16 июн 09, 01:37    [7303008]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
Anatoly Moskovsky
Member

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

пробовал так:
sle_7.text=string(execute immediate :zapr)
не выходит

Не знаю как давно вы приняли решение стать программистом, но спешу вам сообщить, что вообще-то в программировании не принято гадать (а процитированное - ни что иное как гадание).
Есть документация и Гугл, где все или многое написано, с примерами.
Из документации в частности легко выяснить, что execute immediate является Dynamic SQL Format 1 который не предусматривает ни передачу параметров ни возврат результа. Из справки по Dynamic SQL Format 1 легко выяснить, что есть и другие варианты Dynamic SQL, которые позволяют это делать. Например Dynamic SQL Format 3.
Короче говоря прочитайте хелп по ключевым словам Dynamic SQL Format 3 и пример оттуда.

А вообще-то задача поставлена некорректно. Результат запроса - это двухмерная таблица. Как вы ее собираетесь впихнуть в скаляр?
Если вам нужно отображать всю таблицу, так используйте Datawindow и CreateFromSQL.
Заодно и динамический SQL не нужен будет.
Кстати, даже если вам не нужна вся таблица результата, то все равно вместо Dynamic SQL желательно использовать Datastore (невизуальный аналог Datawindow).

nafanya1986
2) Как всё таки сделать, чтобы по таймеру выполнялся запрос?

Cоздайте наследника от встроенного класса Timing и в его событии timer выполняйте действия.

Хотя учитывая что у вас нулевые знания по PowerBuilder'у то вам проще будет использовать другой метод: в каждом окне есть событие timer, его и переопределяйте, а запуск - встроенной глобальной ф-ей Timer(), см. хелп. Естественно в этом случае таймер будет работать пока не закроют окно.

А вообще на вашем месте я бы для начала прочел книжку по любой версии PB и изучил бы азы.
По 5 и 6 версии есть несколько книжек в электронной форме - на этом форуме мелькали ссылки.
16 июн 09, 02:11    [7303035]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
nafanya1986
Member

Откуда:
Сообщений: 12
Anatoly Moskovsky, огромное спасибо, очень выручили.

Реально я знаю, что я по сути не программист, но иногда приходится ))
Очень сложно найти литературу для PowerBuilder, а хелпом я нормально и не научился пользоваться. Ещё раз огромное спасибо.
16 июн 09, 02:35    [7303048]     Ответить | Цитировать Сообщить модератору
 Re: Отправить запрос по таймеру  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Жесть как она есть....)
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
16 июн 09, 11:58    [7304153]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить