Вверх ↑
Этот топик читают: Гость
Ответов: 845
Рейтинг: 19
#1: 2010-10-11 20:22:29 ЛС | профиль | цитата
Вопрос вот в чём к примеру есть база даных с Nым количеством логинов и паролей к примеру
пасс лог
1____test
123__Gav
как арганезовать проверку по всей базе данных логинов и паролей на сответсвие того что вёл пользователь и авторизовала его
набросок
code_20983.txt
карма: 0

0
файлы: 1code_20983.txt [520B] [173]
Ответов: 970
Рейтинг: 270
#2: 2010-10-11 20:26:26 ЛС | профиль | цитата
Незнаю как надо - с базами дело не сильно имел, но может подойдет такой запрос:


#sql

SELECT * FROM LogsAndPass
WHERE Login='%%1'
AND Pass='%%2'
карма: 0

0
Ответов: 845
Рейтинг: 19
#3: 2010-10-11 20:33:01 ЛС | профиль | цитата
Genius писал(а):
SELECT * FROM LogsAndPass
WHERE Login='%%1'
AND Pass='%%2'

о да я конечно понял о чём ты
[flood]Может обясниш для особо одорёных [/flood]

------------ Дoбавленo в 20.32:
вот назрела идея но не знаю как воплотить
получаем с логина и пасса хэш и начинаем поиск по базе если находит такое в базе то пропускает если нет то нет

Add(Edit,14153830,231,206)
{
Left=5
Top=20
Width=175
Text=""
}
Add(Edit,7470650,280,206)
{
Left=5
Top=60
Width=140
Text=""
}
Add(Button,242902,217,273)
{
Left=150
Top=60
Width=30
Caption="Ок"
link(onClick,15457426:doString,[])
}
Add(FormatStr,15457426,273,273)
{
Mask="%1-%2"
link(onFString,9054318:doHashsum,[])
link(Str1,14153830:Text,[(279,245)(237,245)])
link(Str2,7470650:Text,[])
}
Add(Hashsum,9054318,322,273)
{
}


карма: 0

0
Ответов: 970
Рейтинг: 270
#4: 2010-10-11 20:45:58 ЛС | профиль | цитата
Запускаешь файл read

логин genius, пароль 123456
логин Gav, пароль 654321
карма: 0

1
файлы: 1loginsandpass.rar [252.4KB] [135]
Голосовали:GAv
Ответов: 845
Рейтинг: 19
#5: 2010-10-12 11:45:04 ЛС | профиль | цитата
Ошибка
code_20996.txt
------------ Дoбавленo в 11.45:
всё уже норм спасибо Genius
карма: 0

0
файлы: 1code_20996.txt [513B] [173]
Ответов: 16884
Рейтинг: 1239
#6: 2010-10-13 12:22:18 ЛС | профиль | цитата
GAv, и всё таки регистрацию я бы изменил как-то так. add.sha

nesco, SQLite_DB.ini

WaitClose=Ожидание полного завершения при закрытии базы данных|14|1|True,False
"Ожидание полного завершения" - чего завершения ?
Выбираю True и прога висит.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1add.sha [4KB] [107]
Разработчик
Ответов: 26170
Рейтинг: 2127
#7: 2010-10-13 14:05:08 ЛС | профиль | цитата
Tad писал(а):
Выбираю True и прога висит

Значит, база не может быть закрыта из этого метода, те, она чем-то еще занята. Вот метод и ждет завершения работы всех операций движка.
У меня этот метод завершения есть везде и нигде ничего не виснит
------------ Дoбавленo в 14.05:
Tad, в конце концов, ты не маленький мальчик и не начинающий пользователь, базу можно было и приложить к коду
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#8: 2010-10-13 19:21:18 ЛС | профиль | цитата
Виноват. Не подумал.
data.rar
База из этой темы.Выше.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1data.rar [360B] [89]
Разработчик
Ответов: 26170
Рейтинг: 2127
#9: 2010-10-13 19:59:46 ЛС | профиль | цитата
Вот так работает ожидание полного завершения

code_21011.txt
карма: 22

0
файлы: 1code_21011.txt [4KB] [154]
Ответов: 16884
Рейтинг: 1239
#10: 2010-10-13 21:28:00 ЛС | профиль | цитата
Висит
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#11: 2010-10-13 22:38:07 ЛС | профиль | цитата
Tad писал(а):
Висит

У меня через раз проходит. Странно другое, почему вот это условие

sqlite3_close(id) <> SQLITE_OK
не становится false, те, почему база не может завершить кооректно работу
------------ Дoбавленo в 22.25:
Поставил ловушку. Вот что поймал

SQLITE_BUSY       =  5;   // The database file is locked
А хз, почему файл базы заблокирован. Я не знаю, может ты знаешь :?
------------ Дoбавленo в 22.38:
А вот так виснит



Add(Label,16376725,231,42)
{
Left=15
Top=15
Width=40
Height=20
Color=16777215
Font=[Tahoma,10,0,0,1]
Caption="Login"
AutoSize=1
Alignment=1
}
Add(MainForm,2953706,56,154)
{
Width=288
Height=130
Color=16777215
Caption="Регистрация"
BorderStyle=3
Position=1
}
Add(Edit,3557179,168,42)
{
Left=65
Top=15
Width=200
Color=16777215
Font=[Tahoma,10,0,0,1]
Text=""
}
Add(Label,4511899,399,42)
{
Left=15
Top=40
Width=40
Height=20
Color=16777215
Font=[Tahoma,10,0,0,1]
Caption="Pass"
AutoSize=1
Alignment=1
}
Add(Edit,8423193,343,42)
{
Left=65
Top=40
Width=200
Color=16777215
Font=[Tahoma,10,0,0,1]
Text=""
}
Add(Button,1789237,56,105)
{
Left=65
Top=65
Width=200
Height=25
Font=[MS Sans Serif,8,1,0,1]
Caption="Зарегистрироваться"
link(onClick,5055753:doCompare,[])
}
Add(Message,5109666,546,217)
{
Icon=1
link(onMessage,7032299:doTimer,[(610,223)(610,500)(79,500)(79,405)])
}
Add(StyleXP,5418415,56,196)
{
}
Add(If_else,5055753,168,105)
{
Type=5
Op2=String()
link(onTrue,6133223:doValue,[])
link(onFalse,15349296:doWork2,[(217,118)(217,265)])
link(Op1,11406448:Var2,[])
}
Add(If_else,9234116,343,105)
{
Type=5
Op2=String()
link(onTrue,14926189:doHashsum,[])
link(onFalse,15349296:doWork1,[(387,118)(387,258)])
link(Op1,15707847:Var2,[])
}
Add(Memory,6133223,231,105)
{
Point(Data)
link(onData,9234116:doCompare,[])
link(Data,11406448:Var3,[(237,89)])
}
Add(GetDataEx,11406448,168,84)
{
link(Data,3557179:Text,[])
}
Add(GetDataEx,15707847,343,84)
{
link(Data,8423193:Text,[])
}
Add(StrList,16104221,490,210)
{
Strings=#22:Не заполнено поле Pass|23:Не заполнено поле Login|18:Ошибка записи в БД|14:Повторите ввод|18:Ошибка открытия БД|
Point(String)
Point(doGetString)
Point(onGetString)
link(onGetString,5109666:doMessage,[])
}
Add(ChanelToIndex,15349296,434,252)
{
Count=5
link(onIndex,16104221:doGetString,[])
}
Add(Hashsum,14926189,399,105)
{
link(onResult,15593523:doEvent1,[(443,111)(443,166)(170,166)(170,328)])
link(Data,15707847:Var3,[(405,89)])
}
Add(InfoTip,5296874,105,21)
{
Info=#23:Проверка Login на пусто|
Width=169
Height=123
}
Add(InfoTip,7551163,287,21)
{
Info=#22:Проверка Pass на пусто|
Width=218
Height=123
}
Add(InfoTip,7362293,420,189)
{
Info=#6:Ошибки|
Width=176
Height=123
}
Add(FormatStr,3211383,231,336)
{
Mask="SELECT count() FROM LogsAndPass WHERE Login='%1' OR Pass='%2';"
Point(FString)
link(onFString,10006124:doOpen,[(276,342)(276,379)(149,379)(149,398)])
link(Str1,5134847:Var2,[])
}
Add(SQLite_DB,10006124,161,392)
{
FileName="data.db"
WaitClose=0
link(onOpen,13090410:doQuery,[])
link(onError,15349296:doWork5,[(217,405)(217,436)(424,436)(424,286)])
}
Add(SQLite_Exec,12729625,357,392)
{
link(onError,15349296:doWork3,[(405,398)(405,272)])
link(dbHandle,10006124:dbHandle,[(363,380)(349,380)(349,461)(167,461)])
link(SQL,13596474:FString,[])
}
Add(InfoTip,7824113,140,308)
{
Info=#47:Проверка на повтор и если нет повтора то запись|
VAlign=2
Width=358
Height=179
}
Add(SQLite_Query,13090410,224,392)
{
link(onQuery,16101148:doCompare,[])
link(SQL,3211383:FString,[])
}
Add(If_else,16101148,273,392)
{
Op2=Integer(0)
link(onTrue,12729625:doExec,[])
link(onFalse,15349296:doWork4,[(414,405)(414,279)])
}
Add(FormatStr,13596474,364,322)
{
Mask="INSERT INTO LogsAndPass VALUES ('%1', '%2')"
Point(FString)
link(Str1,5134847:Var3,[(370,313)])
}
Add(GetDataEx,5134847,231,308)
{
link(Data,6133223:Value,[])
}
Add(Hub,15593523,182,322)
{
link(onEvent1,13596474:doString,[])
link(onEvent2,3211383:doString,[(214,335)(214,342)])
}
Add(Timer,7032299,98,399)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,10006124:doClose,[])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#12: 2010-10-14 01:21:04 ЛС | профиль | цитата
Так вроде нет, но... мне нужно сразу после проверки "если есть запись" закрыть БД и выбросить сообщение.
Да, а _event_onError у нас просто для мебели ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2010-10-14 01:52:31 ЛС | профиль | цитата
Tad писал(а):
Да, а _event_onError у нас просто для мебели ?

Да, наверное для мебели
------------ Дoбавленo в 01.47:
Кажется я понял -- не закрывается транзакция, пока не закончится очередь событий. Надо вызывать анализ ошибки из другой транзакции



Add(Label,16376725,231,42)
{
Left=15
Top=15
Width=40
Height=20
Color=16777215
Font=[Tahoma,10,0,0,1]
Caption="Login"
AutoSize=1
Alignment=1
}
Add(MainForm,2953706,56,154)
{
Width=288
Height=130
Color=16777215
Caption="Регистрация"
BorderStyle=3
Position=1
}
Add(Edit,3557179,168,42)
{
Left=65
Top=15
Width=200
Color=16777215
Font=[Tahoma,10,0,0,1]
Text=""
}
Add(Label,4511899,399,42)
{
Left=15
Top=40
Width=40
Height=20
Color=16777215
Font=[Tahoma,10,0,0,1]
Caption="Pass"
AutoSize=1
Alignment=1
}
Add(Edit,8423193,343,42)
{
Left=65
Top=40
Width=200
Color=16777215
Font=[Tahoma,10,0,0,1]
Text=""
}
Add(Button,1789237,56,105)
{
Left=65
Top=65
Width=200
Height=25
Font=[MS Sans Serif,8,1,0,1]
Caption="Зарегистрироваться"
link(onClick,5055753:doCompare,[])
}
Add(Message,5109666,581,224)
{
Icon=1
}
Add(StyleXP,5418415,56,196)
{
}
Add(If_else,5055753,168,105)
{
Type=5
Op2=String()
link(onTrue,6133223:doValue,[])
link(onFalse,15349296:doWork2,[(217,118)(217,265)])
link(Op1,11406448:Var2,[])
}
Add(If_else,9234116,343,105)
{
Type=5
Op2=String()
link(onTrue,14926189:doHashsum,[])
link(onFalse,15349296:doWork1,[(387,118)(387,258)])
link(Op1,15707847:Var2,[])
}
Add(Memory,6133223,231,105)
{
Point(Data)
link(onData,9234116:doCompare,[])
link(Data,11406448:Var3,[(237,89)])
}
Add(GetDataEx,11406448,168,84)
{
link(Data,3557179:Text,[])
}
Add(GetDataEx,15707847,343,84)
{
link(Data,8423193:Text,[])
}
Add(StrList,16104221,490,210)
{
Strings=#22:Не заполнено поле Pass|23:Не заполнено поле Login|18:Ошибка записи в БД|14:Повторите ввод|18:Ошибка открытия БД|
Point(String)
Point(doGetString)
Point(onGetString)
link(onGetString,12491241:doEvent1,[])
}
Add(ChanelToIndex,15349296,434,252)
{
Count=5
link(onIndex,16104221:doGetString,[])
}
Add(Hashsum,14926189,399,105)
{
link(onResult,15593523:doEvent1,[(443,111)(443,166)(170,166)(170,328)])
link(Data,15707847:Var3,[(405,89)])
}
Add(InfoTip,5296874,105,21)
{
Info=#23:Проверка Login на пусто|
Width=169
Height=123
}
Add(InfoTip,7551163,287,21)
{
Info=#22:Проверка Pass на пусто|
Width=218
Height=123
}
Add(InfoTip,7362293,420,189)
{
Info=#6:Ошибки|
Width=204
Height=123
}
Add(FormatStr,3211383,231,336)
{
Mask="SELECT count() FROM LogsAndPass WHERE Login='%1' OR Pass='%2';"
Point(FString)
link(onFString,10006124:doOpen,[(276,342)(276,379)(106,379)(106,398)])
link(Str1,5134847:Var2,[])
}
Add(SQLite_DB,10006124,119,392)
{
FileName="data.db"
WaitClose=0
link(onOpen,573349:doEvent1,[])
link(onError,15349296:doWork5,[(171,405)(171,489)(424,489)(424,286)])
}
Add(SQLite_Exec,12729625,357,448)
{
link(onError,15349296:doWork3,[(405,454)(405,272)])
link(dbHandle,10006124:dbHandle,[(363,436)(125,436)])
link(SQL,13596474:FString,[])
}
Add(InfoTip,7824113,98,308)
{
Info=#47:Проверка на повтор и если нет повтора то запись|
VAlign=2
Width=358
Height=200
}
Add(SQLite_Query,13090410,224,392)
{
link(onQuery,7658787:doValue,[])
link(SQL,3211383:FString,[])
}
Add(If_else,16101148,287,448)
{
Op2=Integer(0)
link(onTrue,12729625:doExec,[])
link(onFalse,15349296:doWork4,[(414,461)(414,279)])
link(Op1,7658787:Value,[])
}
Add(FormatStr,13596474,364,322)
{
Mask="INSERT INTO LogsAndPass VALUES ('%1', '%2')"
Point(FString)
link(Str1,5134847:Var3,[(370,313)])
}
Add(GetDataEx,5134847,231,308)
{
link(Data,6133223:Value,[])
}
Add(Hub,15593523,182,322)
{
link(onEvent1,13596474:doString,[])
link(onEvent2,3211383:doString,[(214,335)(214,342)])
}
Add(Hub,12491241,539,217)
{
link(onEvent1,10006124:doClose,[(565,223)(565,527)(106,527)(106,405)])
link(onEvent2,5109666:doMessage,[])
}
Add(Hub,573349,189,392)
{
link(onEvent1,13090410:doQuery,[])
link(onEvent2,16101148:doCompare,[(215,405)(215,454)])
}
Add(Memory,7658787,287,392)
{
}

------------ Дoбавленo в 01.52:
К тому же, я только заметил, что ты сравниваешь в If типы String и Integer, что не есть правильно
карма: 22

1
Голосовали:Tad
Ответов: 16884
Рейтинг: 1239
#14: 2010-10-14 10:50:25 ЛС | профиль | цитата
nesco писал(а):
К тому же, я только заметил
(если бы не ткнул носом, то я бы и не заметил )
Уже привык, что IF работает по типу первого операнда. Тип второго - ему до лампочки.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#15: 2011-12-18 18:34:17 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-20 13:40:18
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)