![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выполнить запрос [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;