• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Работа с БД

  • Автор темы slavon-x86
  • Дата начала
S

slavon-x86

Уже третий день пытаюсь разобраться в базах данных.
Нужны примеры или любая инфа !
Запросы типа "SELECT * ..." я строить умею, но куда их совать и откуда вытаскивать результат не имею понятия. С чего начать ?
 
M

morpheus

какя БД хоть?
если что компоненті TTable TQuery
 
S

slavon-x86

какя БД хоть?
если что компоненті TTable TQuery

База данных - любая, льшь бы работало ! Но желательно быстрая !
TQuery... где можно почитать про этот компонент ?



Поделитесь ?
Я читал, но понимаете, в литературе пишут так, что понять может только тот, кто это уже знает !

п.с.:
Везде написано как создавать запросы! Но как и где их выполнять или куда посылать чтобы получить результат ? Вот в этом и заключается моя проблема.

ааа, ясно они компонентом TQuery и выполняются.
SQL запросы успешно выполняются, но выскакивает ошибка: "Error creating cursor handle".
Кто-нибудь знает почему ?
 
S

slavon-x86

Разобрался как работать с базой, вот только одна проблема: постоянно выскакивает окно для ввода логина и пароля. Как сделать чтобы его небыло ?

Код:
 SQLQuery1.SQLConnection.DriverName := 'dbxmysql';
SQLQuery1.SQLConnection.GetDriverFunc := 'getSQLDriverMYSQL50';
SQLQuery1.SQLConnection.LibraryName := 'dbxopenmysql50.dll';
SQLQuery1.SQLConnection.VendorLib := 'libmysql.dll';
SQLQuery1.SQLConnection.Params.Append('Database=mydb');
SQLQuery1.SQLConnection.Params.Append('User_Name=root');
SQLQuery1.SQLConnection.Params.Append('Password=555555');
SQLQuery1.SQLConnection.Params.Append('HostName=localhost');

SqlQuery1.SQL.Add('CREATE TABLE session ('+
'user_id BIGINT, username VARCHAR(20))');

SQLQuery1.ExecSQL(true);
 
S

slavon-x86

Нашёл !
Код:
SQLQuery1.SQLConnection.LoginPrompt := False;
 
M

morpheus

slavon-x86
маладца, это для реляционок. а что делать с нереляционными?
 
S

slavon-x86

slavon-x86
маладца, это для реляционок. а что делать с нереляционными?
Как я понял нереляционные данные - это всего лишь особая структура данных, содержашая обьекты и что-то типа того. Поэтому можно попробовать через компоненты ADO. Для объекта XmlDataDocument были реализованы несколько методов, позволяющих преобразовывать нереляционные данные в набор DataSet. Я с компонентами баз в делфи работаю всего-лишь четвёртый день, поэтому не особо умею работать с этими компонентами, но думаю при необходимости разобраться можно.

А вы в чём-то сомневаетесь ?
Конечно до профессионала я пока не дотягиваю, однако уже умею из делфи работать с MySQL.
А запросы я строить уже давно научился, к тому же базы работают по одному и тому же принципу, а разный синтаксис меня не пугает - для этого справочник есть.
 
F

FBUS

SQLQuery1.SQLConnection.DriverName := 'dbxmysql';SQLQuery1.SQLConnection.GetDriverFunc := 'getSQLDriverMYSQL50';SQLQuery1.SQLConnection.LibraryName := 'dbxopenmysql50.dll';SQLQuery1.SQLConnection.VendorLib := 'libmysql.dll';SQLQuery1.SQLConnection.Params.Append('Database=mydb');SQLQuery1.SQLConnection.Params.Append('User_Name=root');SQLQuery1.SQLConnection.Params.Append('Password=555555');SQLQuery1.SQLConnection.Params.Append('HostName=localhost');SqlQuery1.SQL.Add('CREATE TABLE session ('+ 'user_id BIGINT, username VARCHAR(20))');SQLQuery1.ExecSQL(true);


фигасе матёрые программисты... за такой код надо в лоб давать. с mysql всё делается гораздо проще без этого дебилизма

реальной помощи человеку ноль.

короче говоря для того чтоб поучиться нужно взять БД ACCESS. создаешь там таблицу например с названием mytable, затем кидаешь на форму DBGrid, AdoConnection, AdoQuery, Dataset (вроде ниче не забыл). В AdoConnection нажимаешь Connection String, вылазиет окно. нажимаешь снизу справа кнопку build. выбираешь базу данных (сам файл), переходишь на след. вкладку, выбираешь Microsoft Jet OLE Provider (или что-то в этом роде), на след. вкладке ставишь права доступа на запись\чтение.

Потом в Dataset надо выбрать твою Query, в самой Query в connection выбираешь AdoConnection1.
В DBGrid выбираешь свой Dataset.
Бросаешь на форму кнопку и пишешь там
Adoquery.Sql.Clear;//Очистка запроса
Adoquery.Sql.Add('select * from MyTable);//Добавление нового запроса
AdoQuery.Active:=true;//Выполнение запроса

Писал по памяти, но по-моему всё так. если будут вопросы пиши.

Сказал бы я про тех кто тебе посоветовал вышеупомянутую шн*гу, но правила форума есть правила. удачи

PS Да чуть не забыл там в query надо поставить Login Prompt в false чтоб пароль к базе не спрашивал
 
F

FBUS

чтобы потом если нужно человеку завести неск-ко таблиц просто указывать Connection, а если одна то впринципе в самой Query можно прописать Connection String

и чем тебе не нравится ADO Query?
 
F

FBUS

слушай... если ты не читал сначала, то могу тебе подсказать что чувак начинающий. а для начинающего лучше всего делать так как я описал. Так что не флуди тут. и вообще это мой совет чуваку. если можешь ему посоветовать лучше - флаг тебе в руки. я написал как проще всего освоить.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!