Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2015, 19:57   #1
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Возникла следующая проблема, ADO не отправляет запросы при динамическом создание. После тестов выяснилось, что если я отправляю хоть один запрос из ADO который создал ручками на форме, то и в потоке начинает всё работать как часы.

Помогите понять, что я упустил, пример динамического создания:
Код:
var
  pcon:TADOConnection;
  PDS:TDataSource;
  pqry:tADOQuery;
begin
  pcon:=TADOConnection.Create(nil);
  PDS:=TDataSource.Create(nil);
  Pqry:=TADOQuery.Create(nil);
  pcon.ConnectionString:='"Provider=MSDASQL.1;Password=PASSWORD;Persist Security Info=True;'+
                         'User ID=USER_REMOTE;Extended Properties="DRIVER={MySQL ODBC 5.3 ANSI Driver};'+
                         'UID=USER_REMOTE;PWD=PASSWORD;SERVER=SERVER_IP;DATABASE={DATABASE};PORT=3306;COLUMN_SIZE_S32=1;"';

  pcon.LoginPrompt:=false;
  pqry.Connection:=pcon;
  PDS.DataSet:=pqry;
  
  with pqry do
    begin
      SQL.Clear;
      SQL.Add('SELECT virtuemart_product_id,product_sku FROM mut_virtuemart_products');
      Active:=True;
      ShowMessage(IntToStr(RecordCount)); //исключительно в целях тестирования, не ругайтесь)
    end;

  pcon.Free;
  pds.Free;
  pqry.free;
end;
Так же не побрезгую примером работы с ADO в потоке.
C YBA}|{EH|/|EM Tip.the.besT

Последний раз редактировалось Tip.the.besT; 31.03.2015 в 20:32. Причина: Дополнил
Tip.the.besT вне форума Ответить с цитированием
Старый 31.03.2015, 20:15   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что в том коде - созданы и удалены несколько объектов, без соединения и выполнения чего-либо

В потоке - для каждого потока свое соединение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2015, 20:26   #3
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что в том коде - созданы и удалены несколько объектов, без соединения и выполнения чего-либо

В потоке - для каждого потока свое соединение
Просто привёл пример как создаю, запрос по сути значения не имеет, главное, что он не выполняется.

Дополнил на всякий случай, вставил запрос.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 31.03.2015, 20:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Минимально для потока:
Код:
begin
  CoInitialize(0);
  with TADOQuery.Create(nil) do begin
   ConnectionString:='"Provider=MSDASQL.1;Password=PASSWORD;Persist Security Info=True;'+
       'User ID=USER_REMOTE;Extended Properties="DRIVER={MySQL ODBC 5.3 ANSI Driver};'+
       'UID=USER_REMOTE;PWD=PASSWORD;SERVER=SERVER_IP;DATABASE={DATABASE};PORT=3306;COLUMN_SIZE_S32=1;"';

   sql.text:='Запрос';
   ExecSQL;
   free;
  end;
  CoUninitialize;
end;
Цитата:
Дополнил на всякий случай, вставил запрос.
Где?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.03.2015, 20:33   #5
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Код:
CoInitialize(0);
CoUninitialize;
Спасибо, сейчас попробую.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TWebBrowser в потоке tronuo Общие вопросы Delphi 2 23.03.2014 14:43
Как из метода X в потоке А, вызвать метод Y и чтобы он работал в потоке B ? lawliet93 C# (си шарп) 0 09.03.2013 18:16
Создание/изменение/удаление файлов в потоке. Мониторинг файлов в потоке. The Real Kos Общие вопросы Delphi 5 22.10.2012 23:58
Поток в потоке Человек_Борща Общие вопросы Delphi 19 21.09.2011 14:22
Оишбка в потоке при работе с ADO MyIE БД в Delphi 7 07.07.2011 23:14