Перейти к содержанию
Fire Monkey от А до Я
  • 0

Работа с БД Firebird


d7d1cd

Вопрос

Привет всем! Есть база данных Firebird. Необходимо из приложения отправить SQL запрос для этой базы и полученные данные вывести в список ListBox. Подскажите, какие компоненты FireDAC необходимо использовать для этого.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Я в базах данных полный ноль. Поэтому прошу прощения за неправильные объяснения - я, повторюсь, многого не знаю.

Поразмыслив, я пришел к выводу, что мне необходимо работать с базой данных без установки СУБД. Чтобы пользователь запустил мою программу, не устанавливая больше ничего у себя на компьютере. Как я понял, в Firebird это возможно, используя архитектуру сервера Embedded (когда весь движок содержится в одной библиотеке). Я правильно все понимаю?

Ссылка на комментарий
  • 0

Я в базах данных полный ноль. Поэтому прошу прощения за неправильные объяснения - я, повторюсь, многого не знаю.

Поразмыслив, я пришел к выводу, что мне необходимо работать с базой данных без установки СУБД. Чтобы пользователь запустил мою программу, не устанавливая больше ничего у себя на компьютере. Как я понял, в Firebird это возможно, используя архитектуру сервера Embedded (когда весь движок содержится в одной библиотеке). Я правильно все понимаю?

Простите, что я вмешиваюсь, а чем тебе SQLite не угодил? Это как раз Embedded база данных. Есть библиотеки для всех платформ. Используется повсеместно и зарекомендовала себя с хорошей стороны. Я раньше (очень давно) работал только с mysql и других не знал и знать не хотел, но жизнь течет и изменяется....

Ссылка на комментарий
  • 0

Если SQLite не устраивает, тогда речь походу об VCL...т.к. для варианта Firebird Embedded(БД) на гаджетах не айс в сравнении...

Да Firebird ваще не айс)))). Как то работал с ней, слишком медленная, как мне показалось, но это мое мнение!

Ссылка на комментарий
  • 0

Я не работал ни с одной базой данных, поэтому надо с чего-то начать. Решил начать с Firebird: кое-какие знания по этой СУБД я имею. Поэтому прошу вас не переубеждать меня в выборе, ибо всегда можно найти человека, который поддержит меня и скажет, что FB - лучше всех! Но порошу вас помочь в начале работы.

 

Итак, мне необходимо написать программу со встроенным сервером FB. Программа должна будет выводить на экран содержимое базы данных, а так же добавлять данные и удалять их. Для начала в IBExpert я создал файл базы данных. В базе у меня одна таблица с именем TABLE, которая состоит из двух полей ID и FIELD. Поле ID - ключевое поле с генератором значений. Поле FIELD текстовое поле с длиной 50 символов.

 

Теперь вопрос: как добавить в эту БД строку?

Ссылка на комментарий
  • 0

Я сторонник Firebird - так что не надо никого искать )))

insert into table (id, field)
values (1, 'text');

Это SQL-код для вставки записи..

function ExecSQL(aDB: TIBDatabase; aTrans: TIBTransaction; const aStr: string; const Args: array of variant): boolean;
var
  Query: TIBQuery;
  i: integer;
  s: string;
begin
  Query := TIBQuery.Create(aDB);
  Result := True;
  try
    try
      with Query do
      begin
        DataBase:=aDB;
        Transaction := aTrans;
        if aTrans.Active then
          aTrans.Active:=false;
        aTrans.StartTransaction;
        SQL.Text:=aStr;
        Prepare;
        for i:=low(Args) to high(Args) do
          Params[i].Value:=Args[i];
        ExecSQL;
        aTrans.Commit;
        Close;
      end;
    except
      on E: Exception do
      begin
        aTrans.Rollback;
        Result:=false;
      end;
    end;
  finally
    aTrans.Active:=false;
    Query.Free;
  end;
end;

Такую процедуру я использовал для выполнения запросов, которые не возвращают результат (не select-запросы), только компоненты в данном случае используются IBX, а не FireDAC.

Но принцип точно такой же.

Ссылка на комментарий
  • 0

Вы резво начали :). Давайте потихоньку. Я создаю проект. Какие компоненты IBX необходимы? И, кроме этого, как использовать библиотеку Embedded сервера?

 

Компоненты IBX и FireDAC сами работают с библиотекой сервера (fbembed.dll). Если выбираешь работать с IBX то IBDatabase, IBTransaction, IBDataset или IBQuery (первый умеет делать не только select, но и insert, delete, update, а второй только select (ну почти, если не подключать IBSQLUpdate). Имхо IBX лучше для начала изучения, но потом советую перейти на FireDAC.

 

Кидаешь на форму IBDatabase, IBTransaction, IBDataset. Связываешь между собой (думаю разберешься там все интуитивно). В IBDataset.SelectSQL пишешь свой первый запрос: select id, field from TABLE

 

Дальше можно через ComponentEditor (ПКМ да IBDataset) - Dataset Editor или ручками в свойствах InsertSQL, UpdateSQL, DeleteSQL создать запросы на вставку, обновление и удаление записей из таблицы. Тут лучше первый вариант (там есть кнопка Generate SQL) - так быстрее разберешься что к чему.

 

Пока все, Удачи

Ссылка на комментарий
  • 0

с т.з. инструментов и удобства из моего опыта работы с Firebird, MySQL и Postgres - FB - наиболее удобна, у нее и файл единый и сервер маленький, и средств больше чем в MySQL

самое главное - есть такой же бесплатный IBExpert для работы с БД

Ссылка на комментарий
  • 0

Вы резво начали :). Давайте потихоньку. Я создаю проект. Какие компоненты IBX необходимы? И, кроме этого, как использовать библиотеку Embedded сервера?

сорри.. привычка кодить руками ))

по поводу библиотеки Embedded - скачайте архив с этой версией с сайта firebirdsql.org. Это архив будет. Его надо распаковать в корневую папку вашего приложения (причём всякие doc, pdf, txt можно удалить).

Этого достаточно, чтобы ваше приложение могло работать без установки сервера СУБД.

Ссылка на комментарий
  • 0

И да: Embedded лучше использовать уже у клиентов, для разработки советую поставить полноценный сервер, просто зачастую надо и в IDE базу держать открытой и при этом в IBExpert... а Embedded работает с базой в монопольном режиме.

Ссылка на комментарий
  • 0

зашел называется....

парочка вопросов:

 

3-х звенка вещь профессиональная, и на ней нужен C# господа, да да, т.к. никакой это нафиг не RAD

что-то вот не понял. использую и delphi и c#. И что-то вот не вижу смысла в Вашем утверждении, ну ни грамма смысла. почему именно c# ? чем для 3-звенки c# лучше delphi ? причем тут rad вообще ?

 

 

был чуть ли не профи прогером по pl/sql. Позже я возненавидел оракл, т.к. познал какая отвратительная работа по администрированию его.

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

сам который год на pl\sql. Поясните, пож-то, чем же администрирование oracle отвратительнее mssql ?

как разработчик(профи) может возненавидеть субд через несколько лет активного использования, из-за якобы "отвратительного" администрирования ?

были профи прогером ? на pl\sql ? и ушли ? да не смешите...

в казахстане "профи" pl\sql разработчик может иметь ОТ 60 у.е.\час. В Беларуси таких оплат нету :)

 

 

На текущий момент прибыль дает больше VCL чем FMX...но я стараюсь сравнять неравенство, т.к. полюбил облака, ведь это свобода.

fmx  - свобода ? ну-ну...

 

 

п.с. сори за оффтоп. ну просто жуть как интересно стало :)

Изменено пользователем ruslan
Ссылка на комментарий
  • 0

что-то вот не понял. использую и delphi и c#. И что-то вот не вижу смысла в Вашем утверждении, ну ни грамма смысла. почему именно c# ? чем для 3-звенки c# лучше delphi ? причем тут rad вообще ?

за чисто 3-х звенку не скажу, ведь сайт о гаджетах, если вам удалось решить все недостатки что я описал выше...то да RAD - "тема" )

 

 

сам который год на pl\sql. Поясните, пож-то, чем же администрирование oracle отвратительнее mssql ?

как разработчик(профи) может возненавидеть субд через несколько лет активного использования, из-за якобы "отвратительного" администрирования ?

Руслан, я писал там мимоходом...не работаю я более на ЗП, слава богу сам по себе теперь и весьма доволен, но зарекаться не буду ))

Когда сам по себе то и инстоллить все компоненты(сервер, дрова, файрволы и т.п.) зачастую надо "сам по себе"...

Вы ставили оракл на красные шляпы? А бывает что и не на интелы приходиться...тогда вообще "верх счастья". Да это полбеды...настраивать тоже далеко не айс...

переполнение логов контролировать вообще полный ппц. Ну а если че завалилось, то exp вас не всегда выручит...я молчу если app сервер оракла упадет...коннектить

дата файлы не судьба...Винду для оракла даже не рассматриваю, там он не стабилен. MSSQL конечно не потянет дикие базы вроде GSM, но таких проектов и нет.

В MSSQL установка, коннект дата файлов, бекап...ВСЕ мышкой! Мечта.

Оракл он рай для прогеров...но для админов АД.

   

в казахстане "профи" pl\sql разработчик может иметь ОТ 60 у.е.\час. В Беларуси таких оплат нету  :)

хорошие фирмы с идеальными ЗП от 2-4к $  я все их в КЗ знаю по пальцам, и не более пальцев, выше тока блатные руковод, но не прогеры

60$ в час...хм за 10ч получается 600$ ? Не тока в беларусии таких ЗП нет...даже в штатах ))

кто вам сказки то такие поет...у нас вчера началась очередная девальвация...и рай 1 рубль = 3 тенге - прекратился!

щас как и ранее (UPD:) 1р = 5тг (и без крыма) ситуация не то чтобы лоховская...хуже, у нас как и в раше изначально после распада СССР

абсолютная изоляция народа от доходов от природных ресурсов(нефть, металлы, газ), только избранные, ...каждый день бентли разбивают...

Я в курсе про вашу перспективу деноминации...но чем черт не шутит...может и нам светит...девальвация то тока началась...

кругом сокращения покатили, исчезают бонусы и премии...жесть

  

 

fmx  - свобода ? ну-ну...

п.с. сори за оффтоп. ну просто жуть как интересно стало  :)

я не веб прогер, поэтому для меня свобода, свобода в данном случае мобильность и простота обновления программы.

Магазы вещь гениальная, но в appstore надо с калашом как нить заехать...достали

 

Изменено пользователем rustam_d
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...