Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Передача данных запроса к БД из потока   Найти похожие ветки 

 
Reindeer Moss Eater ©   (2004-09-06 17:33) [40]

Усыпите его кто-нибудь уже.


 
Анонимщик ©   (2004-09-06 17:37) [41]

[39] galexis ©   (06.09.04 17:29)

> Анонимщик ©

А как передавать параметры БД, которые nil?

Я не знаю.


 
galexis ©   (2004-09-06 17:54) [42]

Хорошо, что мы в разных городах (я надеюсь). А то вот так с работы выйдешь и убьют :)
Всем спасибо. Где еще о потоках за один день столько узнаешь. Может это еще кому нибудь пригодится.


 
galexis ©   (2004-09-06 17:58) [43]

Анонимщик ©
Работает ведь все! Спасибо огромное!


 
Анонимщик ©   (2004-09-06 18:02) [44]

Это тебе так только кажется. Я там специально сделал две ошибки. Будь готов к AccessViolation.


 
galexis ©   (2004-09-07 09:54) [45]


> Анонимщик © (06.09.04 18:02) [44]

Я в принципе понял как работать с потоками и что это за штука. Сейчас буду адаптировать код к своей программе, многое переделать придется. Может и ошибки тогда найдутся. А затеяно это все для того, чтобы клиентское приложение не замирало и была возможность нажать кнопку отмена в процессе выполнения запроса.


 
galexis ©   (2004-09-07 10:04) [46]

Столкнулся с приятной загадкой. Запрос во вторичном потоке выполняется раз в 10 быстрее чем в основном. Т.е. раньше у меня запрос выполнялся в основном потоке около 2 минут, а сейчас по моему секунд за 20 справился. К чему бы это?


 
Digitman ©   (2004-09-07 10:32) [47]


> была возможность нажать кнопку отмена в процессе выполнения
> запроса


и что ты намерен делать в обработчике нажатия кнопки Отмена ?


 
Rule ©   (2004-09-07 10:42) [48]

Digitman ©   (07.09.04 10:32) [47]
Application.terminate :))))


 
Digitman ©   (2004-09-07 10:46) [49]


> Rule ©   (07.09.04 10:42) [48]


тебе-то смешно, а автору "жениться")


 
Rule ©   (2004-09-07 10:49) [50]

Digitman ©   (07.09.04 10:46) [49]
Ну шош сделаешь, настроение сегодня хорошее :)


 
galexis ©   (2004-09-07 11:03) [51]


> Digitman ©   (07.09.04 10:32) [47]

По кнопке Отмена запущу еще один запрос в еще одном потоке, который будет менять значения предварительно созданного генератора. В основном запросе будет проверка на значение этого генератора


 
Анонимщик ©   (2004-09-07 11:31) [52]

Ну вы посмотрите как он буквально за день на глазах прямо вырос.

galexis
Значение генератора проверяй, конечно, но только смотри, чтобы кто-нибудь другой в то же время тот же запрос не запустил. А вот почему выполняется быстрее - попробуй сам догадаться.


 
galexis ©   (2004-09-07 12:40) [53]


> Анонимщик ©   (07.09.04 11:31) [52]


> Значение генератора проверяй, конечно, но только смотри,
> чтобы кто-нибудь другой в то же время тот же запрос не запустил

Об этом я как то и не подумал. И как же быть?

Кстати, там в коде стоит FreeOnTerminate := false;
Почему не true? У меня конечно на компе памяти много, но вот у пользователей не много. Правда, что теперь моя программа не будет работать под 98?


 
galexis ©   (2004-09-07 12:42) [54]

И всетаки почему быстрее стал выполнятся запрос? FB стоит на сервере, ему то ведь все равно из какого потока ему послан запрос.


 
Анонимщик ©   (2004-09-07 14:54) [55]

> Значение генератора проверяй, конечно, но только смотри,
> чтобы кто-нибудь другой в то же время тот же запрос не запустил

Об этом я как то и не подумал. И как же быть?


Корректного решения нет. Можно попытаться прибить поток, но гаранти нет.

Кстати, там в коде стоит FreeOnTerminate := false;
Почему не true? У меня конечно на компе памяти много, но вот у пользователей не много.


Поставь true, тебе в этом никто помешать не может.

Правда, что теперь моя программа не будет работать под 98?

Неправда.

И всетаки почему быстрее стал выполнятся запрос? FB стоит на сервере, ему то ведь все равно из какого потока ему послан запрос.

ibase.ru - читай о IB вообще и транзакциях в частности


 
galexis ©   (2004-09-08 10:55) [56]

Часть программы переделал. Поток запускается, данные пересылаются в DbGrid. При желании кнопкой отмена можно отменить поиск. Но в старой версии программы после того как отобранные по запросу данные отображались в DBGrid, пользователь при желании мог посмотреть более подробную информацию щелкнув два раза на записи в DBGrid. После чего формировался новый запрос с условием по полю ID из IBQuery, которое (ID) в DBQuery не отображалось. А сейчас у меня нет IBQuery, из которого я бы мог взять это поле, есть только DataSource. Как поступить?


 
galexis ©   (2004-09-08 12:41) [57]

С предыдущим вопросом спарвился, может и не очень хорошо, да ладно. Добавил в DBGrid требуемые поля и сделал их свойство Visible:=False.

Теперь появился еще вопрос. При запуске программы компонент IBDatabase требует пароль. Пользователь вводит пароль, открывается соединение и программа работает. Для вторичного потока нужно свое соединение. Хотел взять параметры из основного, но не могу получить пароль. Как это сделать? Можно ли узнать в программе какой пароль ввел польователь?



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.034 c
14-1095184236
jack128
2004-09-14 21:50
2004.10.03
Выведи своего бульдога :-)


1-1095181528
Новичок!!!
2004-09-14 21:05
2004.10.03
Рисование на Image


1-1095341671
DSKalugin
2004-09-16 17:34
2004.10.03
CHR() for WideChar


1-1095507500
RoLeX2004
2004-09-18 15:38
2004.10.03
Как сделать чтобы FindFirst и FindNext искали в папке Temporary I


1-1095393638
Артем К.
2004-09-17 08:00
2004.10.03
Здравствуйте, уважаемые мастера. Как изменить шрифт Hinta?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский