![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IBDataSet(удаление, добавление, редактирование) [D7, IB6.x]
RomanH © (2006-04-12 13:48:00)Здраствуйте мастера.Можно ли при помощи IBDataSet выполнять следующие действия:удаление, добавление, редактирование.
Johnmen (2006-04-15 23:25:00) [1]
> DevilDevil © (15.04.06 20:53) [13]
Флуд здесь не приветствуется.
DevilDevil (2006-04-15 20:53:00) [2]Мастера!
У меня похожая ситуация, только обязательно InsertSQL, EditSQL и DeleteSQL надо использовать, да ещё и с транкзацией. Помогите, пожалуйста. Решил обойтисьQuery1.Fields[0].AsInteger := ...
Но не тут то было, вызывает ошибку, мол нельзя, квери только для чтения. Хотя свойствоreadonly = false.
И ещё, скажите, что за параметры такие Params?
Заранее спасибо
Sergey13 (2006-04-12 15:56:00) [3]2 [11] RomanH © (12.04.06 15:31)
>Хотелось бы чтобы все это делал IBDataSet.Ни как не соображу.
Примерно так.
dm.Men.Append;
dm.Men.FieldByName('MFam').AsString:=edit1.Text;
dm.Men.FieldByName('MName').AsString:=edit2.Text;
dm.Men.Post;
RomanH (2006-04-12 15:31:00) [4]Как предложат мастера на этом форуме так и будем пытаться реализовать поставленную задачу.А где можно посмотреть пример где MenQ-это IBQuery
Men-IBDataSet.
dm.MenQ.Close;Хотелось бы чтобы все это делал IBDataSet.Ни как не соображу.
dm.MenQ.SQL.Clear;
dm.MenQ.SQL.Add('insert into men (MFam,MName)');
dm.MenQ.SQL.Add('values (:Mfam, :MName)');
dm.MenQ.ParamByName('MFam').AsString:=edit1.Text;
dm.MenQ.ParamByName('MName').AsString:=edit2.Text;
dm.MenQ.ExecSQL;
dm.Men.Close;
dm.Men.Open;
Sergey13 (2006-04-12 15:01:00) [5]2[7] RomanH © (12.04.06 14:37)
Если оперировать 2-мя кверями, то отображающий придется переоткрывать после использования модифицирующего. Да и вообще IBDataSet он практически самодостаточен для "комплексной" обработки данных, а посему предпочтительней.
Виталий Панасенко (2006-04-12 15:00:00) [6]
> RomanH © (12.04.06 14:37) [7]
IBDataSet объединяет в себе 5 возможностей: выборку(select), вставку(insert into), изменнеие(udate tbl set field.. where key=key_value), обновление клиента(refresh - select * from tbl where key=key_value)
А так тебе нужно несколько IBQuery
Johnmen (2006-04-12 14:41:00) [7]
> Desdechado © (12.04.06 14:01) [3]
>
> добавить запись в датасет, после чего сделать ApplyUpdates;
>
Почему ты решил, что изменения в НД непременно кешируются?
RomanH (2006-04-12 14:37:00) [8]Теперь я понял. Но чтобы понять до конца поправте меня.Использовать IBDataSet для отображения информации и IBQuery для манипуляции этими данными-это тоже самое что и вместо IBDataSet использовать IBQuery.
То есть IBQuery1.sql:='select * from table';-это для отображения информации
а IBQuery2.sql:='Insert ......';
Sergey13 (2006-04-12 14:24:00) [9]2 [4] RomanH © (12.04.06 14:07)
>Вопрос: IBDataset добавит его запросом InsertSQL или таким же аналогичным способом как IBTable.Append.
По секрету скажу, что в случае с IBTable запись добавится тоже через запрос с Insert. Просто ИБ другого не понимает.
Виталий Панасенко (2006-04-12 14:23:00) [10]IBTable на самом деле, делает тоже самое - шлет сиквел-запрос INSERT INTO. Просто ты этого не видишь
RomanH (2006-04-12 14:07:00) [11]То есть нужно использовать метод Append.Вопрос: IBDataset добавит его запросом InsertSQL или таким же аналогичным способом как IBTable.Append.
Desdechado (2006-04-12 14:01:00) [12]добавить запись в датасет, после чего сделать ApplyUpdates;
RomanH (2006-04-12 13:57:00) [13]Подскажите пожалусто. у меня уже прописаны SelectSQL,DeleteSQL,ModifySQL,InsertSQL.Какой метод надо применить чтобы к примеру выполнить InsertSQL и где прописать параметры (значения новой записи)
Sergey13 (2006-04-12 13:49:00) [14]Можно.