Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по Delphi и MySQL


Тюменский ©   (2005-09-29 18:16:00) 

Скачал компоненту T_mySQL. Вначале всё работало нормально, тестил запросы из флешки, ответы посылал... Но потом вдруг стало писать "SQL Error ...", хотя в коде ничего не менял. Уже и комп перезагружал и с бубном танцевал - ни в какую! :(
Есть подозрение, что эта компонента всего определенное количество запросов отрабатывает и куда-то это количество пишет, а потом всё. Хотя вряд ли - в редми про это не слово.
Вот сам код, подскажите с чего могло всё слететь?
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
 s, login, psw, query, query2, outstr: String;
 i: Integer;
begin
 s := Socket.ReceiveText;
 if (Pos('<LOGIN NAME="', s) = 1) then begin // вход
    login := CheckValue('NAME', s);
    psw := CheckValue('PSW', s);
    query := 'SELECT login FROM users WHERE login="'+login+'"';
    query2 := 'SELECT login FROM users WHERE login="'+login+'" and psw="'+psw+'"';
    with mySQLClient1 do begin
      Hostname := mysql_host;
      Port := mysql_port;
      Username := mysql_login;
      Password := mysql_psw;
      Database := mysql_db;
      Connect;
      Query.PrepareTask(PAnsiChar(query), 'Query', Query_OK, Query_Error);
      Execute;
      if (mySQLClient1.Query.Data(0, 0) = login) then begin
        Query.PrepareTask(PAnsiChar(query2), 'Query2', Query_OK, Query_Error);
        Execute;
        Memo1.Lines.Add(Query.Data(0, 1));
        if (Query.Data(0, 0) = psw) then begin
          Memo1.Lines.Add('Пароль верный!');
          outstr := '<LOGIN GOENTER="YES" LOG_IN="YES" PSW="YES" />';
        end
        else outstr := '<LOGIN GOENTER="NO" LOG_IN="YES" PSW="NO" />';
      end
      else outstr := '<LOGIN GOENTER="NO" LOG_IN="NO" PSW="NO" />';
    end;
    Socket.SendText(outstr);
 end
 else if (Pos('<REG NAME="', s) = 1) then begin // регистрация нового чара
 end
 else begin  // неизвестная команда
 end;
end;
Код парсит XML-запрос от флешки и пихает ей назад ответ, также в XML. Однако, меня беспокоит - где ошибка? Если кто юзает эту компоненту - подскажите?


Тюменский   (2005-09-29 18:46:00) [1]

сразу после первого Execute


umbra   (2005-09-29 18:33:00) [2]


> где ошибка?

да, в каком месте вышеприведенного кода при трассировке возникает ошибка?


Наверх

Титульная страница Поиск, карта сайта Написать письмо