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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.12.2013, 01:32   #1
lishenaianevinosti
Пользователь
 
Регистрация: 29.06.2010
Сообщений: 14
По умолчанию логин и пароль для входа в БД

Есть БД написанная в msq server 10.50.1600.
В делфи создается интерфейс. для входа в БД в делфи создается окно для ввода логина и пароля.
В БД на msq server есть 2 таблицы (НЕ ОДНА) откуда берутся логин и пароль.
Создана отдельная хранимая процедура, которая выбирает из эттих 2-х таблиц поля, которые определяются процедурой как логин и пароль для входа в БД. то есть чтобы при вводе логина и пароля делфи было понятно к каким таблицам обращаться. Вот эта процедура:

Код:
USE [new49]
GO
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE sp_CheckPassword
( 
@Login varchar(max),
@Password varchar(max),
@Result int OUTPUT
)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select @Result = case when exists(
select * from [dbo].[Gos_organ] g 
join [dbo].[Tipi_gos_organov] t on t.Kod_tipa_organa = g.Kod_tipa_organa
where t.Rasshifrovka_koda_tipa_organa = @Login and g.Parol_dlia_vxoda_v_IS = @Password) 
then 1 else 0 end
	
END

теперь что не получается.
В делфи когда созданы все нужные компоненты, среди них есть компонентADOQuery. У него есть свойство SQL.
В свойстве SQL в Wide string list Editor нужно прописать запрос на выбор логина и пароля из БД. Простым SELECT * Tipi_gos_organov не отделаешься т к таблицы две, в одной находится логин , в другой пароль.
Есть еще хранимая процедура которая присвоила полям 2-х таблиц логин и пароль.
Вопрос такой. в свойстве SQL нужно делать запрос к хранимой процедуре либо отдельно к каждой таблице SQL?
и как сделать запрос к процедуре?

Последний раз редактировалось Serge_Bliznykov; 25.12.2013 в 08:55.
lishenaianevinosti вне форума
Старый 25.12.2013, 07:01   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

одной находится логин , в другой пароль = Зачем ? смысл на это не вижу. На мой взгляд можно на одном и SELECT ............. WHERE ....
xxbesoxx вне форума
Старый 25.12.2013, 09:20   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

а посмотреть у СЕБЯ как несколько таблиц превратить в одну. соединить в результате запроса.
Цитата:
Код:
select * from [dbo].[Gos_organ] g 
join [dbo].[Tipi_gos_organov] t on t.Kod_tipa_organa = g.Kod_tipa_organa
where t.Rasshifrovka_koda_tipa_organa = @Login and g.Parol_dlia_vxoda_v_IS = @Password) 
then 1 else 0 end
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 25.12.2013, 13:56   #4
SunnyCrash
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 45
Смущение База правда аксесс

var LookupRes: Variant;
begin
if (Self.Edit1.Text <> '')and(Self.MaskEdit1.Text<> '') then
begin
Self.ADOQuery2.SQL.Clear;
Self.ADOQuery2.SQL.add('SELECT * FROM `Users` WHERE `Users`.`login`="' + Self.Edit1.Text + '"');
Self.ADOQuery2.Open;
LookupRes := Self.ADOQuery2.Lookup('password', Self.MaskEdit1.Text, 'group;id');
if VarIsNull(LookupRes) then
ShowMessage('Даного користувача не існує'#13'Ви ввели на правильний логін або пароль')
end
else
ShowMessage('Ви не ввели логін або пароль');
SunnyCrash вне форума
Старый 25.12.2013, 16:06   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Что это , работает ?
xxbesoxx вне форума
Старый 26.12.2013, 01:16   #6
lishenaianevinosti
Пользователь
 
Регистрация: 29.06.2010
Сообщений: 14
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
одной находится логин , в другой пароль = Зачем ? смысл на это не вижу. На мой взгляд можно на одном и SELECT ............. WHERE ....
структуру таблиц не могу менять. какой запрос из 2х таблиц пишется
в свойстве SQL ? все таки надо обращаться к хранимой процедуре или делать выборку из 2-х таблиц. процедура уже обозначила где логин и пароль
lishenaianevinosti вне форума
Старый 26.12.2013, 02:36   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Почему вы не слушайте когда вас помогает ? почему открывайте здесь еще тема ? http://www.cyberforum.ru/delphi-data...ad1055762.html evg_m написал вам пример да ?
Вам осталось делать из этого запроса представление view и потом будите работать с ним как один таблица уловили смысл создание представление ?
Потом делайте обычные запрос select на это представление view

Код:
procedure TfrmMain.sbtOkClick(Sender: TObject);
var s: string;
begin
  DM.qrEmp.Active := false;
  DM.qrEmp.SQL.Clear;
    s:= 'SELECT * FROM sotrudnik WHERE  S_login ='+ QuotedStr(edLogin.text)+' and S_parol ='+ QuotedStr(edParol.text);
     DM.qrEmp.SQL.Add(s);
    DM.qrEmp.Active:= true;
   if not DM.qrEmp.IsEmpty then
  begin
    frmMain.Hide;
    frmPanel.Show;
    end
  else
   begin
   MessageDlg('Неправильный логин или пароль',mtError,[mbOK],0)

  end;

end;
и все ваши задача решается ....
DM.qrEmp = это DataModule.Adoquery
edLogin и edParol = это Edit
xxbesoxx вне форума
Старый 26.12.2013, 02:48   #8
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

И на будущее что вы знали . ( Логин и пароль) делается на 1 таблицу .... Смысл я не вижу создать на разные таблицу и потом его объединить !
Что на одного пользователь должен быть несколько пароль ? или что ? возьмите любой книга и почитайте ( нормализация баз данных ) и поймете почему создаются несколько таблица ...............
xxbesoxx вне форума
Старый 27.12.2013, 00:21   #9
lishenaianevinosti
Пользователь
 
Регистрация: 29.06.2010
Сообщений: 14
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
И на будущее что вы знали . ( Логин и пароль) делается на 1 таблицу .... Смысл я не вижу создать на разные таблицу и потом его объединить !
Что на одного пользователь должен быть несколько пароль ? или что ? возьмите любой книга и почитайте ( нормализация баз данных ) и поймете почему создаются несколько таблица ...............
1. по русски научись писать
2. где хочу там и открываю темы.
lishenaianevinosti вне форума
Старый 27.12.2013, 08:50   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вечер перестаёт быть томным...
БРЕЙК, господа!
Не переходим на личности!

Модератор

Serge_Bliznykov вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пароль для входа в БД lishenaianevinosti SQL, базы данных 0 17.10.2013 13:51
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 Софт 0 01.12.2011 16:37
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 БД в Delphi 1 01.12.2011 03:11
Пароль для входа в программу Brook Общие вопросы Delphi 32 13.10.2011 19:32