@виталий_Соловьёв, выше @Аватар дал ответ насчёт Delete - переименуйте свою кнопку (и вообще старайтесь не использовать в качестве идентификаторов имена стандартных функций и процедур, это плохая практика).
IsertSTr deleteStr переименовал Стало норм компелироватся.
теперь при попытке сравнить содержимое базы с данными в S1 вот что получается:
Так и где этот код?
Ошибка говорит, что БД не открыта к этому моменту.
И чем S1 провинилась, что у нее такое имя?
Упс… ошибся уже уcпел переименовать переименовать переменную в text
А как же это может быть что делать? у меня все подключено и даже во вьювере отображается.
Так а где этот код вызывается?
В свойствах компонентов прописал и проект прикрепил к теме.
ёлы-палы, так же нельзя программировать. открой для себя что такое дебаггер в делфи, точки останова, пошаговая трассировка. а методом тыка не имея понятия что делаешь ни чего не сделаешь. даже если здесь в конце концов и найдут ошибку, потом другая будет и по кругу
object loginbind: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] TabOrder = 41 Position.X = 200.000000000000000000 Position.Y = 200.000000000000000000 OnChange = loginbindChange
procedure TForm2.loginbindChange(Sender: TObject); begin if (FDQuery1.DataSource.DataSet.Locate('Login',text,[loCaseInsensitive])) then
изменение эдита не выглядит подходящим событием для такого запроса если там всё равно не используется текст из этого эдита…
Куда я только не пытался поиск приделать и сюда тоже:
procedure TForm2.Timer2Timer(Sender: TObject);
begin
label3.Text:=text;
label4.Text:=comand;
if (comand.Length<>0) and (text.Length<>0) then
begin
d:=strtoint(comand);
case d of
1000:begin
if (FDQuery1.DataSource.DataSet.Locate('Login',text,[loCaseInsensitive])) then
begin
FDQuery1.Insert;
D:=1002;
LoginNofind:=true;
loginbind.Text:=text;
end
else
begin
loginbind.Text:='';
passwordbind.Text:='';
groupebind.Text:='';
end;
text:='';
comand:='';
end;
1001:begin
label3.Text:=text;
label4.Text:=comand;
passwordbind.Text:=text;
groupebind.Text:='User';
text:='';
comand:='';
end;
1002:
begin
if LoginNofind=true then
FDQuery1.Post;
end;
end;
end;
end;
Везде выбивает ошибку
не знаю как он работает, но ошибка скорее всего говорит о том, что у FDQuery1
Active
не true.
После перестановки обратно вернулась бывшая ошибка
Перестановки чего?
Перестановки чего?
поиска
if (FDQuery1.DataSource.DataSet.Locate('Login',text,[loCaseInsensitive])) then
FDQuery1
Это же датасет. При чем здесь DataSource.DataSet.Locate?
Просто:
if FDQuery1.Locate('Login',text,[loCaseInsensitive]) then
удалось решить проблему но почему-то теперь в базу данных сохраняются пустые строки
т.е. та проблема указанная в начале темы осталась
Из перемененной, вставляю данные в edit. Однако в таблице они не отображающийся, поэтому с помощью:
FDQuery1.Post;
Удается сохранить только пустую строку. Подскажите пожалуйста как сделать так, чтобы при присвоении перемененной в эдит отображались как при обычном ведении с клавиатуры.
Покажи код, в котором заполняешь данные вставленной записи в таблицу. Похожий на что-то типа такого:
FDQuery1.FieldByName('Login').AsString:=Text;
У меня эдикты связаны с колонкой логин пароль и пр.
У меня эдикты связаны с колонкой логин пароль и пр
Неужели? А что это за TEdit такой, который можно связать с полем датасета?
Это с помощью TLinkControlToField? Не пользовался, увы