Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
1

Сравнение ячеек строкового типа ADOQuery

21.11.2013, 21:40. Показов 1901. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Мне необходима помощь... работаю в Delphi 7, связала работу с БД Access. Мне нужно сравнить имеющиеся ячейки в базе "Логин" и "Пароль", если они совпадают с данными в базе, то открывается Form.2. В коде ошибка плана
Сравнение ячеек строкового типа ADOQuery

помогите разобраться с кодом, пожалуйста!


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
login: string;
begin
If (Edit1.Text<>'') and (Edit2.Text<>'') then
begin
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
  ADOQuery1.Active:=true;
 ADOQuery1.Active:=false;
 ADOQuery1.Parameters.ParamByName('Ëîãèí').Value:=Edit1.Text;
 ADOQuery1.Active:=true;
   If ADOQuery1.RecordCount<>0 then
     begin
      If ADOQuery1.FieldByName('Ïàðîëü').AsString=Edit2.Text then
        begin
         login:=LowerCase(Edit1.Text);
         form2.Show;
  end;
end;
end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2013, 21:40
Ответы с готовыми решениями:

Как организовать сравнение строкового типа при вводе?
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

Преобразование строкового типа в переменную типа float
Как в программе С++ Builder6 преобразовать строковый тип числа взятого из компонента...

Сравнение двух столбцов на совпадения ячеек с сортировкой и заменой ячеек
В общем задача. Представьте, есть четыре столбца - два с ценами, два с артикулами. Соответственно,...

Переменная строкового типа
Помогите решить проблему. В заданном предложении (переменная строкового типа) указать слово , в...

12
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.11.2013, 22:02 2
Какой-то бессмысленный набор строк...
В ADOQuery1.SQL что прописано?
0
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
21.11.2013, 22:12  [ТС] 3
Вы имеете ввиду в в Object Inspector?
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.11.2013, 22:20 4
Да.
0
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
21.11.2013, 22:25  [ТС] 5
Сравнение ячеек строкового типа ADOQuery
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.11.2013, 22:27 6
В SQL что там написано?
0
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
21.11.2013, 22:29  [ТС] 7
пустая форма
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.11.2013, 22:55 8
Тогда все это работать не будет. Там должен быть прописан запрос к таблице.
0
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
21.11.2013, 23:10  [ТС] 9
Но я это прописала в Object Inspector --> ConnectionString --> [Доступ к БД Access]
Дело в том, что записи он добавляет и сохраняет на другой кнопке, а вот сравнивать не хочет
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
21.11.2013, 23:41 10
Это совершенно разные вещи.
ADOQuery работает через запросы, прописанные в его св-ве SQL.
0
6 / 6 / 1
Регистрация: 04.08.2013
Сообщений: 62
22.11.2013, 10:39 11
Delphi
1
2
3
4
5
6
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
  ADOQuery1.Active:=true;
 ADOQuery1.Active:=false;
 ADOQuery1.Parameters.ParamByName('Логин').Value:=Edit1.Text;
 ADOQuery1.Active:=true;            // Что это за вкл/выкл?!
Missing SQL property - отсутствует SQL, так и пишет же
0
1 / 1 / 0
Регистрация: 20.02.2013
Сообщений: 30
22.11.2013, 16:23  [ТС] 12
А вот и решение)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
I : integer;
Log : boolean;
begin
Log := False;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('Select * From Tab');
Form1.ADOQuery1.Open;
Form1.ADOQuery1.First;
For I:=0 to Form1.ADOQuery1.RecordCount-1 do
Begin
IF (Form1.ADOQuery1.Fields.Fields[0].AsString=Form1.Edit1.Text) and (Form1.ADOQuery1.Fields.Fields[1].AsString=Form1.Edit2.Text) then
Log := true;
Form1.ADOQuery1.Next;
end;
 
if Log=True then Form2.ShowModal;
end;
0
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
22.11.2013, 16:54 13
Dani13,
1. Циклом For по записям ДатаСета не бегают - в процессе может измениться количество записей. Для этого используют конструкцию:
Delphi
1
2
3
4
5
While not Form1.ADOQuery1.Eof do
  begin
    ...
    Form1.ADOQuery1.Next;
  end;
2. Зачем брать из таблицы пользователей все записи и затем по ним бегать, если можно взять только нужную запись?
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.SQL.Text:='Select * From Tab Where [Логин]=:p1 AND [Пароль]=:p2';
  ADOQuery1.Parameters.ParamByName('p1').Value:=Edit1.Text;
  ADOQuery1.Parameters.ParamByName('p2').Value:=Edit2.Text;
  ADOQuery1.Open;
  if ADOQuery1.RecordCount>0 then Form2.ShowModal;
end;
0
22.11.2013, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2013, 16:54
Помогаю со студенческими работами здесь

Данные строкового типа
Ввести фамилию, имя и отчество как одно данное строкового типа. Определить длину строки и...

Данные строкового типа
Что-то вообще никак не получается((( 1. Для любого введенного предложения заменить слоги &quot;ма&quot;...

обработка данных строкового типа
Помогите написать программу в Visual Basic, плиз. Дана строка длиной до 254 символов. Посчитать во...

Обработка данных строкового типа
Помогите пожелауйста составить программный код к задаче: Вввести длиной до 254 символов в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru