Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизTIBDataset Найти похожие ветки
← →
maxbgmz (2004-04-21 21:42) [0]Помогите справиться с этим компонентом
никак не удается insert,
говорит dataset read-only.
пробовал также ibclient dataset
но там тоже какие-то проблемы.
база исключительно локальная
для одного клиента.
я никак не могу понять где в этих ibdataset"ах
происходит выбор таблицы.
в selectsql что ли?
← →
maxbgmz (2004-04-21 21:44) [1]ClientDataSet1.Insert;
ClientDataSet1.FieldByName("QUANTITY").AsInteger := StrToInt(Edit1.Text);
ClientDataSet1.Post;
суперсодержательный пример от борланда мне совершенно ничем не помогает. help!
← →
Vlad © (2004-04-21 21:47) [2]
> maxbgmz (21.04.04 21:42)
Ты сначала разберись, о чем речь, либо о TIBDataSet либо о TClientDataSet
← →
maxbgmz (2004-04-21 22:27) [3]TIBDataSet
ещё вопрос.
зачем свойства selectsql,insertsql и проч.
не read-only? раз из трогать не положено и в них автоматически попадают значения.
скажите, а может быть blob можно внедрить в sql-query string?
← →
maxbgmz (2004-04-21 23:17) [4]помогите хотя бы integer вставить, про blob я уже и нем мечтаю
← →
Hawk2 © (2004-04-22 00:30) [5]Да хелп по IBX не блещет примерами, знаю по собственному опыту. :)
← →
Кщд (2004-04-22 07:12) [6]maxbgmz (21.04.04 22:27) [3]
что прописано в SelectSQL и модифицирующих?
← →
Kadr © (2004-04-22 08:24) [7]InsertSQL, UpdateSQL, DeleteSQL как раз и предназначены для того, чтобы датасет не был ReadOnly
← →
maxbgmz (2004-04-22 17:23) [8]в selectSql стоит:
select * from NEW_TABLE
но разве это может повлиять на успешность insert"f?
а что мне исать в insertsql, для того чтобы вогнать
в таблицу blob? и зачем тогда вообще коматна tdataset().insert,
если получается что она не работает.
← →
maxbgmz (2004-04-22 20:36) [9]я чувствую что на мой вопрос народу не ответить, ок.
забудем про dataset.
ответьть мне только на один простой вопрос.
как в ib вставить blob?
никому не приходилось вставлять бинарные объекты в интербазу???
← →
Vlad © (2004-04-22 20:52) [10]TBlobStream, TMemoryStream + F1
← →
maxbgmz (2004-04-22 22:36) [11]знаком с этими компонентами, с их помощью мне удаётся
прочитывать информацию.
но проблема insert"a остаётся.
help весь перелопатил, но там нет ни слова об ошибках при вставке...
← →
Кщд (2004-04-23 06:17) [12]maxbgmz (22.04.04 22:36) [11]
TIBCustomDataSet.CreateBlobStream с примером
← →
Oldman © (2004-04-23 06:47) [13]А попробуй перед Insert написать:
ClientDataSet1.Edit;
← →
Жук © (2004-04-23 08:47) [14]При инсерт/аппенд выполняется запрос, прописанный в InsertSQL
← →
maxbgmz (2004-04-23 22:09) [15]cashedupdates=true не помогает, cannot modify read-only dataset и
всё и точка. неделю бъюсь, всё без толку.
insertsql всегда разный, вы мне предлагаете вставить туда blob?
← →
maxbgmz (2004-04-24 01:21) [16]to Жук
1.забудем про ClientDataSet.
пробовать устал, правда.
да, insertsql исполняется,
и я пытаюсь после этого редактировать запись,
но ничего не выходит, туда упорно заносится только
то что в insertsql и ничего более.
столько времени угрохано, столько всего прочитано...
такая элементарная вещь и никак не раздолбать.
help :"-(
← →
Johnmen © (2004-04-24 01:43) [17]Долбать не надо. Надо спокойно вдумчиво почитать хелп....
← →
ЮЮ © (2004-04-24 06:15) [18]Начем с начала:
maxbgmz (21.04.04 21:44) [1]
суперсодержательный пример от борланда мне совершенно ничем не помогает. help!
DataSet1.Insert;
// после этого добавится запись в локальный DataSet
DataSet1.FieldByName("QUANTITY").AsInteger := StrToInt
(Edit1.Text);
// заполнятся поля вставленной записи
DataSet1.Post;
{а вот здесь выполнится запрос (InsertSQL), в который в качестве параметров проставятся данные из полей записи. Если cashedupdates = true, то запрос сразу выполняться не станет. А выполнятся все запросы для всех модифицированных/вставленных/удаленных для всего DataSeta при применении соответствующего метода}
Аналогтчно, после DataSet1.Edit;...;DataSet1.Post; выполнится UpdateSQL, а после DataSet.Delete - DeleteSQL.
>maxbgmz (23.04.04 22:09) [15]
>insertsql всегда разный
Он должен быть всегда один (как и UpdateSQL и DeleteSQL), но правильный. А подставлять туда параметры, это дело самого DataSet-а
← →
maxbgmz (2004-04-26 21:09) [19]
IBDBTH.Open;
IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(12365651)";
IBDSTH.Open;
IBDSTH.Insert;
IBDSTH.Edit;
IBDSTH.FieldByName("PHOTOID").AsInteger :=2212312312;
IBDSTH.Post;
IBDSTH.ApplyUpdates;
IBDBTH.CloseDataSets;
тут я не рассматриваю blob для простоты примера.
в результате работы этой программы всегда получается
12365651 в поле PHOTOID, и никогда 2212312312,
менять команды местами пробовал по разному....
если работать можно только путём insertSQL,
и никакие варианты с IBDSTH.FieldByName()
непопустимы, скажите мне тогда, как засунуть
blob в sql строку.
← →
Курдль © (2004-04-26 21:22) [20]
> IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(12365651)";
> в результате работы этой программы всегда получается
> 12365651 в поле PHOTOID, и никогда 2212312312,
А если вы на заборе напишете [censored], неужто там появится слово "МИР"? :)
IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(:PHOTOID)";
← →
kaif © (2004-04-27 02:53) [21]У IBDataSet есть запросы ModifySQL, DeleteSQL, InsertSQL и RefreshSQL. Нужно их аккуратно все прописать. Вписываешь параметрические запросы типа
insert into table1 (id, name) values (:id, :name)
update table1 set id := :id, name = :name where id = :old_id
:id и :name это имена параметров. Параметры IBDataSet сам подставит из одноименных полей (компоненты Field). Если не найдет среди полей, то поищет в свойстве DataSource (мало ли, мжет это Master-Detail связь компонентов...).
имена параметров могут иметь префиксы old_, что значит прежнее значение одноименного поля.
Для простоты впиши свой SELECT в свойство SelectSQL и вызови DataSet Editor с помощью контекстного меню компонента (правая кнопка мыши). Нажми Generate SQLs и редактор сам сгенерит тебе все нужные запросы. Убедись, что в условии Where запроса ModifaySQL используются ключевые поля.
Сохрани и попробуй открыть IBDataSet.Active := True или Open.
Он должен нормально заработать с сеткой.
Поля типа BLOB обслуживаются им автоматически. По крайней мере, картинки (TDBImage) и Мемо-поля (TDBMemo) будут работать сразу.
Дальше - читай внимательно Help.
Разберешься.
← →
kaif © (2004-04-27 02:55) [22]Как выглядит окошко DataSet Editor-а можешь посмотреть на моем сайте (там не Delphi описано, но все равно сойдет в качестве примера)
http://gaapinvest.com/allegro/doc/book2/doc034.html
← →
maxbgmz (2004-04-27 17:08) [23]всем спасибо!
разобрался
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.033 c