Работа с БД

Тема в разделе "Delphi - Базы данных", создана пользователем slavon-x86, 8 сен 2008.

  1. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    216
    Симпатии:
    0
    Уже третий день пытаюсь разобраться в базах данных.
    Нужны примеры или любая инфа !
    Запросы типа "SELECT * ..." я строить умею, но куда их совать и откуда вытаскивать результат не имею понятия. С чего начать ?
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    какя БД хоть?
    если что компоненті TTable TQuery
     
  3. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    216
    Симпатии:
    0
    База данных - любая, льшь бы работало ! Но желательно быстрая !
    TQuery... где можно почитать про этот компонент ?


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

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

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

    slavon-x86 Well-Known Member

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

    Код (Text):
     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);
     
  5. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    216
    Симпатии:
    0
    Нашёл !
    Код (Text):
    SQLQuery1.SQLConnection.LoginPrompt := False;
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    slavon-x86
    маладца, это для реляционок. а что делать с нереляционными?
     
  7. slavon-x86

    slavon-x86 Well-Known Member

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

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

    FBUS Well-Known Member

    Регистрация:
    12 мар 2008
    Сообщения:
    57
    Симпатии:
    0

    фигасе матёрые программисты... за такой код надо в лоб давать. с 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 чтоб пароль к базе не спрашивал
     
  9. FBUS

    FBUS Well-Known Member

    Регистрация:
    12 мар 2008
    Сообщения:
    57
    Симпатии:
    0
    чтобы потом если нужно человеку завести неск-ко таблиц просто указывать Connection, а если одна то впринципе в самой Query можно прописать Connection String

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

    FBUS Well-Known Member

    Регистрация:
    12 мар 2008
    Сообщения:
    57
    Симпатии:
    0
    а запрос ты куда вставлять будешь?
     
  11. FBUS

    FBUS Well-Known Member

    Регистрация:
    12 мар 2008
    Сообщения:
    57
    Симпатии:
    0
    слушай... если ты не читал сначала, то могу тебе подсказать что чувак начинающий. а для начинающего лучше всего делать так как я описал. Так что не флуди тут. и вообще это мой совет чуваку. если можешь ему посоветовать лучше - флаг тебе в руки. я написал как проще всего освоить.
     
Загрузка...

Поделиться этой страницей