Нужно сделать так, чтобы каждый раз при вводе имени игрока программа проверяла, есть ли он уже в базе данных: если да, то кол-во сыгранных им игр увеличивается на 1, если нет - добавляется новая запись. Но выходит так, что, если программу не закрывать и регистрировать несколько имен подряд, они в любом случае добавляются как новые записи, даже если они уже присутствуют в базе. Если программу запустить заново, то при вводе тех же имен, проверка уже будет проходить нормально. То есть, если за одну сессию программы вводить одно и то же имя - оно будет постоянно создавать новую запись :( Я в этом деле новичок, так что надеюсь на вашу помощь.
Работаю с Delphi 7 и базами данных .mdb, созданных на Access 2007.
Код:
plr1_name := InputBox('Введите имя 1-го игрока', '', '');
while plr1_name = '' do begin ShowMessage('Вы должны ввести имя!'); plr1_name := InputBox('Введите имя 1-го игрока', '', ''); end;
if tbl_player.Locate('Имя', plr1_name, [])
then begin
qry_player.SQL.Clear;
qry_player.SQL.Add('UPDATE player');
qry_player.SQL.Add('SET [Кол-во игр] = [Кол-во игр] + 1');
qry_player.SQL.Add('WHERE [Имя] = :plr_name');
qry_player.Parameters.ParamByName('plr_name').Value := plr1_name;
qry_player.ExecSQL;
end
else begin
qry_player.SQL.Clear;
qry_player.SQL.Add('INSERT INTO player([Имя], [Кол-во игр], [Кол-во выигрышей])');
qry_player.SQL.Add('VALUES(:plr_name, 1, 0)');
qry_player.Parameters.ParamByName('plr_name').Value := plr1_name;
qry_player.ExecSQL;
end;
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.