Работа с БД

slavon-x86

Well-Known Member
18.12.2005
215
0
#1
Уже третий день пытаюсь разобраться в базах данных.
Нужны примеры или любая инфа !
Запросы типа "SELECT * ..." я строить умею, но куда их совать и откуда вытаскивать результат не имею понятия. С чего начать ?
 

slavon-x86

Well-Known Member
18.12.2005
215
0
#3
какя БД хоть?
если что компоненті TTable TQuery
База данных - любая, льшь бы работало ! Но желательно быстрая !
TQuery... где можно почитать про этот компонент ?


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

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

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

slavon-x86

Well-Known Member
18.12.2005
215
0
#4
Разобрался как работать с базой, вот только одна проблема: постоянно выскакивает окно для ввода логина и пароля. Как сделать чтобы его небыло ?

Код:
 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);
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
slavon-x86
маладца, это для реляционок. а что делать с нереляционными?
 

slavon-x86

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

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

FBUS

Well-Known Member
12.03.2008
57
0
#8
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 чтоб пароль к базе не спрашивал
 

FBUS

Well-Known Member
12.03.2008
57
0
#9
чтобы потом если нужно человеку завести неск-ко таблиц просто указывать Connection, а если одна то впринципе в самой Query можно прописать Connection String

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

FBUS

Well-Known Member
12.03.2008
57
0
#11
слушай... если ты не читал сначала, то могу тебе подсказать что чувак начинающий. а для начинающего лучше всего делать так как я описал. Так что не флуди тут. и вообще это мой совет чуваку. если можешь ему посоветовать лучше - флаг тебе в руки. я написал как проще всего освоить.