Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как выполнить запрос [D7, IB6.x, I]


alll_23 ©   (2007-10-03 15:08:00) 

Увадаемые мастера, как мне выполнить запрос на вставку записи в таблицу БД interbase через клиенстское приложение.
На форме у меня IBDateBase1, DBgrid1, IBDataSet1 и IBTransaction1 ну и DataSource. Все компоненты связанны вроде правильно так как к примеру в IBDataSet1.Sqlselect.text вставляю предварительно приготовленный запрос и выполняю,
так же пытаюсь зделать и с запросом на вставку примерно так
insert into table(grid,fio)values(''''edit1.text..... только в IBDataSet1.Sqlinsert.text ну с самим запросом всё нормальнь тоесть нормально с кавычками, а как быть с транзакцией (как закомитить чтобы эта запись появилась в таблице. Вы конечно извените,а то сижу в Инеткафе немогу скинуть код показать


Sergey13   (2007-10-03 16:09:00) [1]

> [14] alll_23   (03.10.07 16:05)

Ну так почитай про датасет (TIBDataSet) в хелпе например. Там и примеры кода есть.


alll_23   (2007-10-03 16:05:00) [2]

Да понял я термины не понял механизмы работы с клиенского приложения
через эти компоненты ранше делал через Qurye, GRid и DataSorce и было всё понятно


Sergey13   (2007-10-03 16:03:00) [3]

> [12] alll_23   (03.10.07 16:02)
> а то прийду домой и опять блудить в коде буду

А ты себя по рукам бей что бы не блудить. Или по голове. 8-)


alll_23   (2007-10-03 16:02:00) [4]

Вот это лучше вы дали мне кусочек кода ведь он не большой :) а то прийду домой и опять блудить в коде буду в пяти строчках грубо говоря


Sergey13   (2007-10-03 16:01:00) [5]

> [9] alll_23   (03.10.07 15:58)
> Не пойму ваши термины

Наверное тогда надо почитать книжку.


alll_23   (2007-10-03 16:00:00) [6]

Ага так нужно закрыть дата сет перед транзакцией


alll_23   (2007-10-03 15:58:00) [7]

Не пойму ваши термины DataSet перед каждым запросом закрываю потом открываю


Sergey13   (2007-10-03 15:55:00) [8]

> [5] alll_23   (03.10.07 15:46)
> Да
> [6] alll_23   (03.10.07 15:46)
> Нет

А "может быть"?

Записав в Sqlselect запрос и вызвав (дважды кликнув по датасету) редактор датасета, можно с помощью мышки сформировать правильные запросы, которые будут срабатывать при вызове методов датасета типа insert. Стартовать явно транзакцию при этом не надо, т.к. датасет открыт уже в контексте какой то транзакции. Крмитить после Post можно TIBTransaction.CommitRetaining.


alll_23   (2007-10-03 15:47:00) [9]

в ibdateset.sqlinsert.text


alll_23   (2007-10-03 15:46:00) [10]

Да


alll_23   (2007-10-03 15:46:00) [11]

Нет


Sergey13   (2007-10-03 15:45:00) [12]

> [0] alll_23   (03.10.07 15:08)
> так же пытаюсь зделать и с запросом на вставку

В смысле

> в IBDataSet1.Sqlselect.text вставляю предварительно приготовленный запрос и выполняю,

Так что ли?


alll_23   (2007-10-03 15:39:00) [13]

Но оно может и лучше или наверно лучше
ну с транзакцие я так и делал должно же работать?
IBTransaction1.StartTransaction;
…
IBTransaction1.Commit;


alll_23   (2007-10-03 15:31:00) [14]

Ага понятно ну транзакцией я так и делал но была ошибка Тransaction is Active почему не пойму может через параметры попробую и будет работать


engine   (2007-10-03 15:25:00) [15]

> insert into table(grid,fio)values(''''edit1.text…

Лучше работать c параметрами:
insert into table(grid, fio) values (:fromEdit1,…

IBDataSet1.ParamByName('fromEdit1').Value := Edit1.Text;


По поводу транзакций:
IBTransaction1.StartTransaction;
…
IBTransaction1.Commit;


Наверх

Титульная страница Поиск, карта сайта Написать письмо