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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2013, 17:03   #1
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию Сравнить поле - Boolean (логического) типа

Есть поле access (поле так и называется) в таблице users
Хочу сделать сравнение ,
Код:
procedure TForm5.FormCreate(Sender: TObject);
begin
DataModule2.ADOQuery2.Active:=false;
DataModule2.ADOQuery2.SQL.Clear;
DataModule2.ADOQuery2.SQL.Add('SELECT * FROM users');
DataModule2.ADOQuery2.SQL.Add('WHERE login="'+Form1.Elog.text+'" and access=True');
DataModule2.ADOQuery2.Active:=true;
if DataModule2.ADOQuery2.RecordCount <> 0
then
onn:=true else onn:=false;
if onn then
closepanel.Visible:=true;
end;
Если в данном пользователе есть доступ (в поле access галочка если стоит) то кнопка включится
точнее переменной сначале присвою True ну и тд....

Как мне сравнить с полем access ? мой запрос не работает access=True
viks1 вне форума Ответить с цитированием
Старый 07.05.2013, 17:12   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

access<>0 .
eval вне форума Ответить с цитированием
Старый 07.05.2013, 18:05   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
procedure TForm5.FormCreate(Sender: TObject);
begin
  DataModule2.ADOQuery2.Close;
  DataModule2.ADOQuery2.SQL.Text := 'SELECT * FROM users WHERE login = :login');
  DataModule2.ADOQuery2.Parameters.ParamByName('login').Values := Form1.Elog.Text;
  DataModule2.ADOQuery2.Open;
  if DataModule2.ADOQuery2.RecordCount <> 0 then
    ClosePanel.Visible := ADOQuery2.FieldByName('access').asBoolean;
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 07.05.2013 в 18:08.
Yurk@ вне форума Ответить с цитированием
Старый 07.05.2013, 18:23   #4
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
access<>0 .
не работает все равно
viks1 вне форума Ответить с цитированием
Старый 07.05.2013, 18:28   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Что значит все равно не работает?
eval вне форума Ответить с цитированием
Старый 07.05.2013, 18:35   #6
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
Код:
procedure TForm5.FormCreate(Sender: TObject);
begin
  DataModule2.ADOQuery2.Close;
  DataModule2.ADOQuery2.SQL.Text := 'SELECT * FROM users WHERE login = :login');
  DataModule2.ADOQuery2.Parameters.ParamByName('login').Values := Form1.Elog.Text;
  DataModule2.ADOQuery2.Open;
  if DataModule2.ADOQuery2.RecordCount <> 0 then
    ClosePanel.Visible := ADOQuery2.FieldByName('access').asBoolean;
end;

и так тоже...

Цитата:
Сообщение от eval Посмотреть сообщение
Что значит все равно не работает?
ошибки не выдает, но и результата тоже...

Последний раз редактировалось Stilet; 07.05.2013 в 20:56.
viks1 вне форума Ответить с цитированием
Старый 07.05.2013, 18:48   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну значит таких нет, при чем тут не работает..
откройте аксес и тупо там пропишите SELECT * FROM users WHERE [access]<>0
что выдает?
eval вне форума Ответить с цитированием
Старый 08.05.2013, 00:11   #8
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
ну значит таких нет, при чем тут не работает..
откройте аксес и тупо там пропишите SELECT * FROM users WHERE [access]<>0
что выдает?
всем спасибо, я использовал
Код:
ClosePanel.Visible := DataModule.ADOQuery1.FieldByName('access').asBoolean;
сработало.

я его вставил аж при входе
Код:
begin

DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('SELECT * FROM users');
DataModule2.ADOQuery1.SQL.Add('WHERE login="'+Elog.text+'" and password="'+Epass.text+'"');
DataModule2.ADOQuery1.Active:=true;
if DataModule2.ADOQuery1.RecordCount <> 0
then begin
form5.Show ;
Form5.ClosePanel.Visible := DataModule2.ADOQuery1.FieldByName('access').asBoolean;
end
  else
ShowMessage('NO FOUND!')
end
viks1 вне форума Ответить с цитированием
Старый 08.05.2013, 10:01   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

эмм .... а в п. №3 не то же самое написано?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу логического отрицания и логического умножения двоичных чисел. мурад05 C# (си шарп) 2 03.12.2012 15:10
17. Составить программу логического отрицания и логического умножения двоичных чисел. Программа на языке высокого уровня. мурад05 Помощь студентам 1 08.10.2012 16:06
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов Speeker БД в Delphi 2 28.11.2011 16:22
Обмен данными между формами через переменную типа boolean Человек_Борща Общие вопросы Delphi 3 22.01.2010 20:17
Описать рекурсивную функцию Palindrom(S) логического типа Master-Sergey Помощь студентам 1 15.12.2008 19:03