Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в потоке 
V
    Опции темы
uranpro
Дата 7.4.2009, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Добрый вечерг!
пишу клиент-серверное приложение, использую инди тцп.

при получении сообщения
Код

if CommBlock.Command = 'GETCURVERSION'

сервер должен выполнить функцию (в теле ServerExecute(AThread: TIdPeerThread))
Код

  function GetCurVersion:string;
  var
    Qry:TADOQuery;
  begin
    try
      Qry:=TADOQuery.Create(nil);
      with Qry.SQL do begin
        Clear;
        Add('select Version from programsau where id = '+inttostr(CommBlock.ProID));
        end;
      mSQL.Lines.Add(Qry.SQL.Text);
      Qry.ExecSQL;
      if Qry.RecordCount>0 then
        Result:=Qry.Fields.Fields[0].AsString
      else
        Result:='$InvalidProID';
    finally
      Qry.Free;
      end;
  end;

при ее выполнении происходит неизвестная ошибка! и еще нигде не отображается (сам выявил)
вот тут ошибка
Код

      Qry:=TADOQuery.Create(nil);

клиента, который отправлял сообщение выкидывает.

что делать ?


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
mopsa
Дата 7.4.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.1.2009
Где: Екатеринбург/Асбе ст

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



Цитата(uranpro @ 7.4.2009,  21:43)
      Qry:=TADOQuery.Create(nil);

Подумай!?
PM MAIL   Вверх
Kbl4AH
Дата 8.4.2009, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(mopsa @  7.4.2009,  21:30 Найти цитируемый пост)
Подумай!?

Подумал! Все нормально!

Добавлено через 3 минуты и 7 секунд
uranpro, у меня эта строка без ошибки отрабатывает...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 8.4.2009, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В этой строке не должно быть ошибки...
1) Проверь есть ли у тебя модули DB, ADODB? По идее есть, иначе заругалось бы в строке описания переменной, но на всякий случай глянь...
2) Вроде, все-равно код не рабочий, т.к. отсутствует подключение (при выполнении запроса будет ошибка Project Project1.exe raised exception class EDatabaseError with message 'Missing Connection or ConnectionString'.)...

ЗЫю Ошибка должна быть при выполнении этой строки 
Код

Qry.ExecSQL;


Это сообщение отредактировал(а) Kbl4AH - 8.4.2009, 08:47
PM MAIL ICQ   Вверх
CodeMonkey
Дата 8.4.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(uranpro @  7.4.2009,  18:43 Найти цитируемый пост)
сам выявил

Может поделитесь с общественностью, как вы это "выявили"?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
uranpro
Дата 8.4.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Kbl4AH, нет =(, после Qry:=TADOQuery.Create(nil); выкидывает клиента


CodeMonkey, проверил так:
Код

      mS.Lines.Add('gcv. step 0');
      Qry:=TADOQuery.Create(nil);
      mS.Lines.Add('gcv. step 1');


Добавлено через 1 минуту и 46 секунд
Kbl4AH, забыл ConnectionString прописать, но до нее даже не дошло.

Добавлено через 5 минут и 6 секунд
подправил немного:
Код

  function GetCurVersion:string;
  var
    Qry:TADOQuery;
  begin
    try
      mS.Lines.Add('gcv. step 0');
      Qry:=TADOQuery.Create(nil);
      mS.Lines.Add('gcv. step 1');
      Qry.Connection:=Conn;
      with Qry.SQL do begin
        Clear;
        Add('select Version from programsau where id = '+inttostr(CommBlock.ProID));
        end;
      try
        Qry.ExecSQL;
        if Qry.RecordCount>0 then
          Result:=Qry.Fields.Fields[0].AsString
        else
          Result:='$InvalidProID';
      except
        on E:Exception do Result:=E.Message;
        end;
    finally
      Qry.Free;
      end;
  end;



--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
CodeMonkey
Дата 8.4.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(uranpro @  8.4.2009,  10:25 Найти цитируемый пост)
CodeMonkey, проверил так:

А до:

Код
try
  Qry:=TADOQuery.Create(nil);
except
  on E: Exception do
    mS.Lines.Add(E.Message);    
end;


Не догадались?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
uranpro
Дата 8.4.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Kbl4AH, я, наверно, не так объяснил... мое приложение ошибки не выдает, просто завершает функцию и выкидывает клиента, а так не должно быть.

Добавлено через 1 минуту и 33 секунды
CodeMonkey, не увидел смысла! так как ошибки не выдает. сейчас проверю, конечно.

Добавлено через 5 минут и 15 секунд
CodeMonkey, =) проверил... ErrorMessage: Не был произведен вызов CoInitialize
что делать ? в других приложения работало нормально, без CoInitialize


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
CodeMonkey
Дата 8.4.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
uranpro
Дата 8.4.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



CodeMonkey, большое спасибо!  smile 
кому интересно:
Код

...
uses ActiveX;
...
  function GetCurVersion:string;
  var
    Qry:TADOQuery;
  begin
    try
      CoInitializeEx(NIL, COINIT_APARTMENTTHREADED);
      try
        Qry:=TADOQuery.Create(nil);
        Qry.Connection:=Conn;
        with Qry.SQL do begin
          Clear;
          Add('use SatanaPower;'); // Используя силу сатаны, мы находим данные
          Add('select Version from programsau where id = '+inttostr(CommBlock.ProID));
          end;
        try
          Qry.Open;
          if Qry.RecordCount>0 then
            Result:=Qry.Fields.Fields[0].AsString
          else
            Result:='$InvalidProID';
        except
          on E:Exception do Result:=E.Message;
          end;
      except
        on qE:Exception do Result:=qE.Message;
        end;
    finally
      Qry.Free;
      CoUninitialize;
      end;
  end;


Это сообщение отредактировал(а) uranpro - 8.4.2009, 11:28


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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