Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
59 11 15

Логин-пароль и treeview Аноним 02/12/19 Пнд 13:17:54 15357971
IMG201912021216[...].jpg (114Кб, 1280x1024)
1280x1024
IMG201912021216[...].jpg (117Кб, 1280x1024)
1280x1024
Делаю на c++ в RAD Studio
Нечто подобное уже спрашивал в с++ треде,но меня послали к тем,кто работает в радке,спрошу так
Сразу оговорюсь,что я студент пту колледжа,задание по практике,если нужно-могу скинуть фулл ТЗ,ибо вполне вероятно,что сформулирую вопросы я сейчас коряво.
К сути:
1)Нужно сделать вход с логином-паролем.Регистрацию сделал,вопрос с входом.
Есть БД Access с полями "Логин","Пароль" и "isadmin"
Пытаюсь сделать так: if(Form3->DataSource1->DataSet->Locate("Логин",Edit1->Text,TLocateOptions())==true)
{
if(Form3->DataSource1->DataSet->Locate("Пароль",Edit2->Text,TLocateOptions())==true)
{
Form2->Show();
}
}
Очевидно,не работает.Алсо,это второй вариант,до этого пытался сделать через FieldByName
Кроме того,пока нет идей,как сделать проверку значения isadmin(0/1) в определённом поле

2) treeview.
Он должен отражать штатное расписание предприятия.Его нужно построить из 2 sql таблиц(пикрил)
В podrtype-"корневые" отделы,в otdtype-подотделы.И там,и там есть айдишник,который у подотделов по заверению местных программистов у подотделов соответствует id корневых.На ks и ko можно не обращать внимание,использовались для переезда с бд 30летней давности
Основные непонятки у меня тут фактически со всем.TreeView нам не давали от слова "совсем",в интернете смог найти только общие сведения.
Спасибо всем,кто дочитал эту простыню ,буду благодарен за любую помощь.
02/12/19 Пнд 14:14:04 15358552
Аноним 02/12/19 Пнд 14:22:17 15358683
>>1535855
За отзыв?Ок,где отзываться?
02/12/19 Пнд 15:21:41 15359274
>>1535868
В личном сообщении
Аноним 02/12/19 Пнд 15:56:29 15359555
>>1535927
Бля, только сейчас сажу увидел
Ну затралина((99((,чо
Аноним 02/12/19 Пнд 17:16:27 15360136
Бамп
02/12/19 Пнд 17:39:21 15360347
>>1536013
Анус себе побампай, собака сутулая
Аноним 02/12/19 Пнд 18:45:25 15360728
Работаю в радке, правда на делфи. Но думаю ты сможешь под с++ подогнать. Задавай вопросы.
Аноним 02/12/19 Пнд 19:50:10 15361029
Ну же анончик объявись, помочь хочу.
Dataset какой ADO?
Через locate вариант не очень. Лучше сделай запрос (select ид from table where login= 'логин' and password = 'пароль'; (если query поддерживает параметры то лучше через них, чтобы избежать sql injection) ) через query и если query не будет пуст значит можно логиниться.
если все таки решил через локейт не забудь проверить сместился ли курсор. значение поля можно получить через dataset.fieldbyname('название поля').value; хорошо бы сперва проверить есть ли такое поле через findfield('название поля') если вернет null значит поля нет.
Аноним 02/12/19 Пнд 20:06:09 153610810
по treeview
Если нету dbaware treeview то бишь с свойством датасорс , то придется через livebinding
Аноним 02/12/19 Пнд 20:26:25 153611811
>>1536102
О, извини,я тут
Я пытался сделать с query,но то ли я тупой,то ли он с access действительно не дружит.Сейчас оно висит на ADOTable
Предыдущий вариант выглядел так:
while (!DataSource1->DataSet->Eof)
{
if(Form3->Edit1->Text==DataSource1->DataSet->FieldByName("Логін")->AsString)
{
if(Form3->Edit2->Text==DataSource1->DataSet->FieldByName("Пароль")->AsString)
{
if(DataSource1->DataSet->FieldByName("isadmin")->AsInteger==1)
{
Form2->Show();

}
else
if(DataSource1->DataSet->FieldByName("isadmin")->AsInteger==0)
{
Form4->Show();
}

}

}

}
Datasource свойства нет,о livebinding не слышал,сейчас загуглю
Аноним 02/12/19 Пнд 20:28:17 153611912
>>1536118
щас не уходи, я катку докатаю в радугу и приду помогу тебе)
Аноним 02/12/19 Пнд 20:28:27 153612013
>>1536102
Нашёл.Я так понимаю treeview с его помощью связать с datasource?
Аноним 02/12/19 Пнд 20:28:52 153612114
Аноним 02/12/19 Пнд 20:29:07 153612215
Аноним 02/12/19 Пнд 20:43:04 153613216
все я тут задавай вопросы
Аноним 02/12/19 Пнд 20:51:49 153613917
>>1536122
Так, начну тогда с конца
Нашёл датасет,он не переходит в "active" без command text
Туда сразу и писать запросы?
Аноним 02/12/19 Пнд 20:56:18 153614618
>>1536139
Наверно слегка запутал тебя словом датасет. ADOquery, ADOTABLE, ADODATASET это все наследники класса TDataset. В датасорсе ты и указываешь датасет.
Аноним 02/12/19 Пнд 20:57:07 153614719
если тебе удобно через adotable давай через него.
Аноним 02/12/19 Пнд 20:59:45 153614920
>>1536147
Не столько удобно,сколько просто это было в лабах.Если есть варианты лучше-я только за
Аноним 02/12/19 Пнд 21:03:44 153615421
тогда давай Adoquery будем настраивать. Сможешь куда нить бд выложить:? или там чтото важное есть.
Аноним 02/12/19 Пнд 21:09:10 153616222
>>1536154
Не,просто пустая.На Мегу пойдёт?Там хоть весь проект могу выложить
Аноним 02/12/19 Пнд 21:10:26 153616523
Пойдет, кидай:)
Аноним 02/12/19 Пнд 21:19:26 153617324
Аноним 02/12/19 Пнд 21:22:51 153617625
>>1536165
Не уверен,как работает мега,напиши, если не можешь скачать
Аноним 02/12/19 Пнд 21:43:27 153618926
изображение.png (14Кб, 997x392)
997x392
изображение.png (25Кб, 717x737)
717x737
изображение.png (27Кб, 1358x346)
1358x346
Аноним 02/12/19 Пнд 21:44:49 153619027
изображение.png (17Кб, 788x358)
788x358
изображение.png (16Кб, 753x291)
753x291
Аноним 02/12/19 Пнд 21:45:07 153619228
>>1536189
Спасибо,сейчас попробую
Аноним 02/12/19 Пнд 21:57:02 153619929
изображение.png (28Кб, 727x634)
727x634
изображение.png (11Кб, 499x339)
499x339
не забудь поля создать. если будет жаловаться при создании полей что неверные параметры. заполни у них значения по умолчанию
Аноним 02/12/19 Пнд 22:55:43 153623530
IMG201912022155[...].jpg (80Кб, 964x691)
964x691

>>1536199
DBGrid ведь принципиально важна,так?
Она у меня ничего не отображает.
При вводе данных выдаёт access violation
Аноним 02/12/19 Пнд 23:26:10 153626131
>>1536235
дбгрид я для себя добавил чтобы смотреть что там в таблице.
запускай точку останова и смотри на каком моменте ошибка возникает. Скорее всего обращаешься к не созданому объекту
Аноним 02/12/19 Пнд 23:45:31 153627132
>>1536261
Я там поковырял, походу,починил
Но теперь оно ругается на

if(ADOQuery1isadmin->AsInteger==1)
(Уже неплохо, раньше оно туда даже не заходило)
Мне непонятно,как перевести её на плюсы
Там нигде никакой символ не потерян?
Аноним 02/12/19 Пнд 23:50:26 153627433
изображение.png (17Кб, 550x354)
550x354
>>1536271
смотри вот откуда это имя берется. когда ты два раза на квери щелкаешь появляется список созданных полей. выбираешь его и вот нужное имя
Аноним 03/12/19 Втр 00:14:32 153628834
>>1536274
Понял, спасибо
Теперь +- работает,хотя и считает isadmin=0,не смотря на значение в бд
Не буду тебя уже сегодня мучить, огромное спасибо
Завтра,если что,поможешь чутка?
Аноним 03/12/19 Втр 00:18:48 153628935
>>1536274
Кста,ты в какой стране?
Я просто действительно очень благодарен,думал,может хоть на пепси/пивчанский скинуть
Аноним 03/12/19 Втр 00:27:16 153629236
>>1536289
да я из рашки, завтра вечером тогда с Treeview помогу:)
>может хоть на пепси/пивчанский скинуть
Не переживай, лучше сам выпей:)
03/12/19 Втр 10:42:34 153638737
elrisitas.jpg (39Кб, 600x600)
600x600
>>1536102
>select ид from table where login= 'логин' and password = 'пароль'
Секурити уровня б
Аноним 03/12/19 Втр 11:24:50 153641538
>>1536387
А как сделал бы ты анончик?
Аноним 03/12/19 Втр 13:48:26 153648939
>>1536387
Там всё равно этим будут пользоваться только внутри предприятия токари да офисные служащие.Оснлвная цель-чтобы начальник мог оперативнее дать по шапке пинающему хуи работнику
Аноним 03/12/19 Втр 15:06:39 153658640
>>1536415
селект ид фром тэйбл вхере логин=логин энд хеш_пассворд=хеш
Аноним 03/12/19 Втр 16:03:07 153668141
>>1536586

селект ид фром тэйбл тэ вхере тэ.логин=логин энд хеш_пассворд=хеш(КОНКАТ(пассворд, тэ.соль))
Аноним 03/12/19 Втр 16:30:51 153671242
>>1536681
1) Получаем юзверя по логину. Если он есть, то забираем у него хеш и соль. Если нет, сваливаемся с ошибкой об отсутствии юзверя.
2) Генерим хеш из пароля и соли. Если сгенеренный хеш совпадает с полученным из бд, то пароль был верный.
Аноним 03/12/19 Втр 16:31:22 153671543
Аноним 03/12/19 Втр 18:25:33 153688944
>>1536715
Читаемость не ухудшает.
Аноним 03/12/19 Втр 20:26:23 153699445
>>1536292
Ну как,можешь сейчас?
Аноним 03/12/19 Втр 20:57:26 153701546
Аноним 04/12/19 Срд 11:17:36 153736247
Аноним 04/12/19 Срд 18:03:48 153761148
Dvbi4xiWkAE8L-m.jpg (135Кб, 1080x1080)
1080x1080
Аноним 04/12/19 Срд 18:33:20 153762949
fail.mp4 (3199Кб, 640x360, 00:00:53)
640x360
>>1536489
>ё равно этим будут пользоваться только внутри предприятия токари да офисные служащие.Оснлвная цель-чтобы начальник мог оперативнее дать по шапке пи

>Секурити уровня б
>Микроменеджмент

Вспомнились истории знакомой когда она прогромистом н заводе работала, профили для МП окон програмировала.
Так такой пиздец.
Непосредственное начальсво сваливает свои косяки на рабочих, и прочие прелести.
Аноним 04/12/19 Срд 19:47:34 153768350
>>1537629
Тогда надо прикрутить дату изменения инфы хотя бы
Хэши за <недели всё равно не сделаю,а так хоть подтасовки не будет
Аноним 04/12/19 Срд 20:08:41 153770351
Аноним 04/12/19 Срд 20:08:55 153770452
>>1537683
Записала указы начальства на диктофон и когда оно стало пиздеть директору проиграла запись.

Но работать в такой атмосфере в любом случае пиздец.
Компетентному человеку нечего делать в таких местах.
Аноним 04/12/19 Срд 20:17:23 153770853
>>1536994
Могу:) По поводу treeview, у тебя не очень удобная структура бд для иерархии.
Аноним 04/12/19 Срд 22:22:18 153776654
>>1537708
Я думал сделать выборку по первой таблице (там где корневые отделы),а потом по нажатию-по второй,где подотделы
Аноним 04/12/19 Срд 22:39:40 153777355
>>1537708
Хотя я уверен,что есть вариант получше,о котором я пока не знаю
Аноним 04/12/19 Срд 22:51:21 153778656
изображение.png (12Кб, 770x384)
770x384
изображение.png (34Кб, 1180x746)
1180x746
изображение.png (34Кб, 1166x633)
1166x633
изображение.png (30Кб, 1153x779)
1153x779
Аноним 04/12/19 Срд 22:59:25 153779657
изображение.png (50Кб, 835x507)
835x507
>>1537786
чтот скрин не приложился. Ну да есть косяк что корень должен быть первым в выборке, так что хорошо бы order by сделать, и чутка подправить алгоритм. Если для тя это большой косяк то могу подправить.
Аноним 04/12/19 Срд 23:00:07 153779858
>>1537796
Но направление думаю должно быть понятно)
Аноним 04/12/19 Срд 23:26:22 153782859
>>1537796
Я пока всё равно без искричества сижу,видимо,уже завтра придётся
Первым в выборке-тип по списку в бд?
Аноним 05/12/19 Чтв 06:51:55 153793260
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов