![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Hi, нужна помощь по Delphi, а именно организовать добавление пользователя в БД Access. Авторизация уже работает, но добавлять надо вручную. Главная проблема в работоспособности SQL запроса.
Код регистрации: ------------------------------------------------------------------------------ Код:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;
type
TForm4 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Button1: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit5, Unit2;
{$R *.dfm}
procedure TForm4.Button2Click(Sender: TObject);
begin
Form4.Close;
end;
procedure TForm4.Button1Click(Sender: TObject); //??????? ?????? ? ???????
begin
try
if (Trim(Edit1.Text)='') or (Trim(Edit2.Text)='') then showmessage('Заполните поля!');
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('insert into users ([login], [password]);');
DataModule2.ADOQuery1.FieldByName('login').AsString:=Edit1.Text;
DataModule2.ADOQuery1.FieldByName('password').AsString:=(Edit2.Text);
DataModule2.ADOQuery1.Insert;
Edit1.Clear;
Edit2.Clear;
except
on e:Exception do
end;
end;lmikle: пользуемся тегами! Последний раз редактировалось lmikle, 05.05.2018 в 19:53. |
|
#2
|
|||
|
|||
|
DataModule2.ADOQuery1.Insert;
замени на DataModule2.ADOQuery1.ExecSQL; |
|
#3
|
|||
|
|||
|
Почему? Что тут не так?
|
|
#4
|
|||
|
|||
|
По скрину можно только сказать, что где-то нету поля login.
|
|
#5
|
|||
|
|||
|
Но поле в базе есть.
|
|
#6
|
||||
|
||||
|
А может таким запрос должен быть
Код:
DataModule2.ADOQuery1.SQL.Add('insert into users (login, password) values (' + Edit1.Text + ',' + Edit2.Text + ')');
|
|
#7
|
|||
|
|||
|
или
Код:
DataModule2.ADOQuery1.SQL.Add('insert into users (login, password) values (:login, :password)';
DataModule2.ADOQuery1.FieldByName('login').Value:=Edit1.Text;
DataModule2.ADOQuery1.FieldByName('password').Value:=Edit2.Text; |
|
#8
|
|||
|
|||
|
Попробовал два кода, но все равно поле 'login' not found.. Не понимаю в чем проблема..
|
|
#9
|
|||
|
|||
|
Цитата:
|
|
#10
|
|||
|
|||
|
В смысле читать поле?
|
|
#11
|
||||
|
||||
|
Цитата:
|
|
#12
|
|||
|
|||
|
Не шарю как проверить SQL запрос..
И такое поле только одно, находится в таблице users. Можно по подробнее про вставку через datasource? ![]() |
|
#13
|
|||
|
|||
|
Ребят, сроки начинают поджимать)) а с базой проблема не решилась..
![]() |
|
#14
|
||||
|
||||
|
Да что на гуще кавы гадать, одни непонятки, давно бы проект свой опубликовали в топке, а на повторение нету времени
|
|
#15
|
|||
|
|||
|
Чтобы просмотреть базу, переименуйте расширение на mdb. пароль 2332
|