Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Agent654
0 / 0 / 0
Регистрация: 26.06.2018
Сообщений: 53
1

ADOQuery1: Parameter 'name' not found - Delphi БД

02.07.2018, 09:35. Просмотров 748. Ответов 4

Здравствуйте, у меня такая проблема. Создаю что-то типа авторизации в программе. Должно работать так: пользователю открывается окно авторизации. Если он уже был зареган (Поля name, surname, class - Есть в бд и они все принадлежат одному id)то просто заходит в программу, а если нет то программа должна все поля которые он ввёл добавить.
Если данные в бд есть, то проблемы нет. Всё заходит. А вот с добавлением проблемы. Выдаёт ошибку ADOQuery1: Parameter 'name' not found. Там в коде есть {} в нём я пытался сделать тоже самое только немного по другому выдаёт такую же ошибку только в место Parameter пишет Поле.
Помогите пожалуйста!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
unit Unit3;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, Data.Win.ADODB,
  Vcl.Grids, Vcl.DBGrids;
 
type
  TForm3 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form3: TForm3;
 
implementation
 
{$R *.dfm}
 
uses Unit1;
 
procedure TForm3.Button1Click(Sender: TObject);
Var nameText1, nameText2, nameText3: string;
begin
 
ADOQuery1.SQL.Text:= 'SELECT Таблица1.[id_student] FROM Таблица1 WHERE Таблица1.[surname] = "'+Edit1.Text+'"';
        ADOQuery1.Open;
        nameText1:= ADOQuery1.Fields[0].AsString;
        ADOQuery1.Close;
 
 
ADOQuery1.SQL.Text:= 'SELECT Таблица1.[id_student] FROM Таблица1 WHERE Таблица1.[name] = "'+Edit2.Text+'"';
        ADOQuery1.Open;
        nameText2:= ADOQuery1.Fields[0].AsString;
        ADOQuery1.Close;
 
 
ADOQuery1.SQL.Text:= 'SELECT Таблица1.[id_student] FROM Таблица1 WHERE Таблица1.[class] = "'+Edit3.Text+'"';
        ADOQuery1.Open;
        nameText3:= ADOQuery1.Fields[0].AsString;
        ADOQuery1.Close;
 
        ShowMessage(nameText1); ShowMessage(nameText2); ShowMessage(nameText3);
        if (nameText1 = '') or (nameText2 = '') or (nameText3 = '') then
        begin
        ADOQuery1.Active:=True;
      {
     ADOQuery1.Insert;
      ADOQuery1.FieldByName('surname').AsString:= 'Ввв';
      ADOQuery1.FieldByName('Name').AsString:= Edit2.Text;
      ADOQuery1.FieldByName('class').AsString:= Edit3.Text;
      ADOQuery1.Post;}
 
 
      ADOQuery1.Parameters.ParamByName('name').Value:= Edit2.Text;
      ADOQuery1.Parameters.ParamByName('class').Value:= Edit3.Text;
      ADOQuery1.Parameters.ParamByName('surname').Value:= Edit1.Text;
      ADOQuery1.ExecSQL;
 
        end;
 
 
        if (nameText1 = nameText2) and (nameText2 = nameText3) and (nameText1 = nameText3) then
        begin
        Form1.show;
        Form3.Visible:= false;
 
        end;
 
end;
 
end.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2018, 09:35
Ответы с готовыми решениями:

ADOQuery1: Parameter 'Месяц' not found
Делаю запрос через adoquery, который должен выводить сумму выручки за месяц....

Ошибка 'ADOQuery1: Parameter 'id_sotr_' not found'
Всем привет! Делаю запрос через adoquery, который должен выводить записи из...

ADOQuery1 feild ' ' not found
Всем доброго времени суток! не могу разобраться, выдает ошибку при...

parameter not found
Не знаю что творть.. если вот так жестоко на меня ругется. На форме как вы...

Parameter naim not found
Нужно чтобы данные, записанные в ячейке stringgrid сохранялись в бд Acess....

4
drvolodko
213 / 57 / 32
Регистрация: 23.05.2014
Сообщений: 561
02.07.2018, 10:27 2
Лучший ответ Сообщение было отмечено Agent654 как решение

Решение

Цитата Сообщение от Agent654 Посмотреть сообщение
ADOQuery1.SQL.Text:= 'SELECT Таблица1.[id_student] FROM Таблица1 WHERE Таблица1.[surname] = "'+Edit1.Text+'"';
Все подобные строки заменить на
Delphi
1
ADOQuery1.SQL.Text:= 'SELECT Таблица1.[id_student] FROM Таблица1 WHERE Таблица1.[surname] ='+QuotedStr(Edit1.Text);
Вставка:
Delphi
1
2
3
4
5
6
ADOQuery1.close;
ADOQuery1.SQL.Text:='Insert into Таблица1 ([name], [class], [surname]) Values (:name, :class, :surname);'
ADOQuery1.Parameters.ParamByName('name').Value:= Edit2.Text;
ADOQuery1.Parameters.ParamByName('class').Value:= Edit3.Text;
ADOQuery1.Parameters.ParamByName('surname').Value:= Edit1.Text;
ADOQuery1.ExecSQL;
1
Agent654
0 / 0 / 0
Регистрация: 26.06.2018
Сообщений: 53
02.07.2018, 10:35  [ТС] 3
Большое спасибо! Всё работает!
0
krapotkin
3468 / 3066 / 1057
Регистрация: 14.04.2014
Сообщений: 14,842
Записей в блоге: 15
02.07.2018, 12:42 4
в первом посте так-то глупость написана
выбрать всех с именем Иван. ID первого из них запомнить
выбрать всех с отчеством Петрович. ID первого из них запомнить
выбрать всех с фамилией Степанов. ID первого из них запомнить
и что??
получили три разных ID
а иногда вообще ничего не получили если нет таких...
что дальше ???

на самом-то деле нужно было
выбрать всех с именем Иван И с отчеством Петрович И с фамилией Степанов.
но и тут затык для полных тезок если далее по-прежнему
"ID первого из них запомнить"

логины надо искать а не ФИО
0
Agent654
0 / 0 / 0
Регистрация: 26.06.2018
Сообщений: 53
02.07.2018, 20:13  [ТС] 5
Да бред. Ну я только начинающей кодер, и после того как мне указали на более важную ошибку (о которой я и писал), я смог протестировать логику кода и понял это. И уже исправил.
0
02.07.2018, 20:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2018, 20:13

Ошибка: "adoquery1.field 'id_work' not found"
На одной форме есть два grida. По сути один grid должен быть главным,а второй...

Ошибка: 'FDQuery: Parameter 'edit.Text' not found'
Мир всем и привет ! помогите пожалуйста раньше я сделал через ADOQuery не...

Ошибка о том, что параметр не найден: qry_EveryDay: Parameter 'param1' not found
вот сдал сессию и вернулся к проекту... поскольку на новый вопрос моём прошлом...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru