Поиск:

Ответ в темуСоздание новой темы Создание опроса
> асинхронное соединение с MySQL, как узнать, что SQL запрос выполнен? 
V
    Опции темы
nomadminded
Дата 10.1.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



доброго времени суток. помогите пожалуйста, никак не могу разобраться.
пробую установить асинхронное соединение с MySQL из delphi через ADODB библиотеку (ADOConnection.ConnectOptions:=coAsyncConnect;  ADOCommand1.ExecuteOptions:=[eoAsyncExecute];)
посылаю на сервер большой SQL (INSERT) с помощью ADOCommand.Execute и продолжаю работать, пока он там выполняется. как мне узнать, что он закончил выполнение? каким образом можно это проверить?
спасибо заранее.
PM MAIL ICQ   Вверх
Mephisto
Дата 10.1.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



А у тебя блокирутся таблица для чтения при вставке? Если нет, то думаю, никак.
PM   Вверх
drkot
Дата 10.1.2007, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



можно попробовать запросить запись по ключевому полю через тот же command. Если запись есть то запрос соответственно завершился.
Есть еще такое понятие как список транзакций на сервере, по ним наверно можно. Но я с таким не работал.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
SergeBS
Дата 10.1.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Mephisto, 
drkot, 
ну что вы, право...

nomadminded, 
ADOCommand - F1 - свойство States. А у более других есть еще и events на разные события такого духа.

PM MAIL   Вверх
nomadminded
Дата 10.1.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



re: SergeBS

со states не очень понимаю как работать, не могли бы вы коротенький примерчик набросать?
PM MAIL ICQ   Вверх
SergeBS
Дата 10.1.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



nomadminded, 
Ну нахал... В доке же все прозрачно описано. Навскидку:
Код

if ADOCommand1.States = stExecuting then 
  showmessage('Connection object is currently executing.');


"Hello, world" написать не пробовал? smile

PM MAIL   Вверх
drkot
Дата 10.1.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



SergeBS, ну так это позволяет просто контролировать есть транзакция на сервере или нет.
Их же десяток в очереди висеть может. Как я понимаю надо определить состояние конкретной.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
nomadminded
Дата 10.1.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



re:SergeBS, 

такое уже давно пробовала:
while form1.ADOCommand1.States = stExecuting do;
выдает ошибку [Error] Unit1.pas(259): E2008 Incompatible types и даже не компилится.
PM MAIL ICQ   Вверх
nomadminded
Дата 10.1.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



все, спасибо, разобралась.
PM MAIL ICQ   Вверх
SergeBS
Дата 11.1.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



nomadminded, 
Осталось для завершения:
1. Показать решение.
2. Закрыть тему (галочку поставить).
PM MAIL   Вверх
drkot
Дата 11.1.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



SergeBS, а зачем? Он то уже разобрался.  smile 
Теперь только при возникновении очередных проблем прибежит.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
nomadminded
Дата 11.1.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



re:SergeBS, 
решение на самом деле легкое. но вот где-то у меня в этом коде образуется мемлик..
Код

while form1.ADOCommand1.States = [stExecuting] do;
Form1.ADOCommand1.CommandText:=command;
Form1.ADOCommand1.Execute;

не могу понять где  smile 
может кто что подскажет?

пс. насчет галочки - сорри, я тут новенькая. как разберусь окончательно - влеплю обязательно.

Это сообщение отредактировал(а) nomadminded - 11.1.2007, 19:09
PM MAIL ICQ   Вверх
SergeBS
Дата 11.1.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



nomadminded, 
Что такое мемлик? просто не понял.
PM MAIL   Вверх
nomadminded
Дата 11.1.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.12.2006

Репутация: нет
Всего: нет



сорри, memory leak.

обнаружила, что он образуется при 
Код
ADOCommand1.ExecuteOptions:=[eoAsyncExecute];


при отсутствии асинхронности мемлика нет..
any ideas?


Это сообщение отредактировал(а) nomadminded - 11.1.2007, 20:01
PM MAIL ICQ   Вверх
SergeBS
Дата 12.1.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



nomadminded, 
Цитата
memory leak.

Нда. Неприятно. Подробнее изложи, какая версия Delphi и стоят ли updates, версия MDAC, чем утечка обнаружена. Навскидку - тут может повлиять ADOcommand.Close после выполнения. Но это так, совсем навскидку...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.