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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2008, 17:00   #1
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
Вопрос Проблема с добавлением в БД

Ну вобщем у меня есть добавление в таблицу Users через Query, так же есть проверка на создание юзера с одинаковым Логином.
Так проблема в том что данные в таблицу добавляются после закрытия приложения, хотя если не закрывать то пользователя с таким именем уже создать нельзя будет писать "мол такой пользователь существует", хотя в БД его еще нет.
Можно ли сделать чтоб он сразу добавлялись???
VenMaster вне форума Ответить с цитированием
Старый 03.06.2008, 17:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
проблема в том что данные в таблицу добавляются после закрытия приложения
А это код смотреть надо... Телепаты как всегда в отпуске.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2008, 17:06   #3
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
По умолчанию

procedure TFRegist.Button1Click(Sender: TObject);
var
sql:string;
begin
sql:='SELECT * FROM users WHERE Login="'+Edit1.text+'"';
Query1.SQL.TEXT:=sql;
Query1.prepare;
Query1.open;
if(query1.RecordCount=1) then
begin
showmessage('Данный акаунт уже существует, введите другой логин');
Edit1.Text:='';
end else
begin
Query1.Active:=False;

if ((MaskEdit1.Text=MaskEdit2.Text) AND (MaskEdit1.Text<>'') and (edit1.Text<>'') and (edit2.Text<>'') and (edit3.Text<>'') and(edit4.Text<>'')) then
begin
UpdateSql1.DatabaseName:='Data\';
sql:='INSERT INTO users(Login, Pass, Name, Surname, Grup, Admin) VALUES("'+Edit1.Text+'","'+MaskEdit 1.text+'","'+Edit2.Text+'","'+Edit3 .text+'","'+Edit4.Text+'",false)';
UpdateSQL1.InsertSql.TEXT:=sql;
UpdateSql1.ExecSQL(ukInsert);
Showmessage('Данные добавлены');
Edit1.text:='';Edit2.Text:='';Edit3 .Text:='';
Edit4.Text:='';Maskedit1.Text:=''; Maskedit2.Text:='';
end
else
begin

ShowMessage('Введенные пароли не совпадают или есть незаполненные поля');
Label2.Font.Color:=clred;
Label1.Font.Color:=clred;
MaskEdit1.Text:='';
MaskEdit2.Text:='';
end;
end;
end;
VenMaster вне форума Ответить с цитированием
Старый 03.06.2008, 17:17   #4
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

А чем коннектишься?
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 03.06.2008, 17:22   #5
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
По умолчанию

Цитата:
Сообщение от D-mon Посмотреть сообщение
А чем коннектишься?
в Query прописываю data\
Или я может чето не понял???
VenMaster вне форума Ответить с цитированием
Старый 03.06.2008, 17:28   #6
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Я бы посоветовал бы всязку:
IBDatabase1->IBTransaction1->IBQuery1
И тут у IBTransaction1.Commit; - обновляет записи.
Я так делаю, наньше делал как ты. и тоже самое было, не обновлялось.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 03.06.2008, 17:31   #7
VenMaster
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 53
По умолчанию

А вроде IBQuery это для сетевых БД вроде??? а у мну локальная
VenMaster вне форума Ответить с цитированием
Старый 03.06.2008, 18:00   #8
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

А какая разница??? Что сетевая что локальня??? Только в IP (у локальной 127.0.0.1).
А вообще у IBDatabase есть 2-ва вада коннекта. Можно выбрать в Database Component Editor-> Local or Remoute
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 03.06.2008, 21:02   #9
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от VenMaster Посмотреть сообщение
Ну вобщем у меня есть добавление в таблицу Users через Query, так же есть проверка на создание юзера с одинаковым Логином.
Так проблема в том что данные в таблицу добавляются после закрытия приложения, хотя если не закрывать то пользователя с таким именем уже создать нельзя будет писать "мол такой пользователь существует", хотя в БД его еще нет.
Можно ли сделать чтоб он сразу добавлялись???

А даннЫе сразу и добавляются, просто нужно обновить запрос...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с добавлением ресурсов?? HunterMan Win Api 4 12.06.2008 02:33
меню в делфи с добавлением новой функции к уже существующей БД Ane4ka БД в Delphi 22 27.05.2008 15:40