![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление данных с помощью TIBDataSet. [D6, IB6.x]
Tchainik_Delphi © (2004-10-20 17:56:00)Всем добрый день. Господа программисты, мне нужна ваша помощь. У меня есть база данных Interbase 6.x, в программе использую TIBDataBase, TIbTransaction и TIBDataset. И я хочу добавить данные в коде типа:
insert;
fieldbyname('field1').asstring := 'string1';
fieldbyname('field2').asstring := 'string2';
post;
В результате чего появляется Exception типа "Cannot modify a read-only dataset".
Я проверял, действительно, TIBDataset.Canmodify = false.
Скажите, пожалуйста, как сделать, что бы TIBDataset был открыт и на запись?
Спасибо.
msguns (2004-10-21 11:48:00) [1]>Johnmen © (21.10.04 11:43) [14]
>Серега, я тоже не спорю. Просто высказываю имхо.
Именно для этого "имхо" я и постился ;)))
С уважением.
msguns (2004-10-21 11:47:00) [2]>Johnmen © (21.10.04 11:43) [14]
>Серега, я тоже не спорю. Просто высказываю имхо.
Именно для этого "имхо" этого я и постился ;)))
С уважением.
Johnmen (2004-10-21 11:43:00) [3]>msguns © (21.10.04 11:05) [12]
Серега, я тоже не спорю. Просто высказываю имхо.
>В смысле что я могу использовать и одну и ту же транзакцию как
>для чтения, так и для модификации.
Можно, конечно. Но более строго и обоснованно - две.
Это тоже не спор, а имхо. Очень сильное притом...:)
Sergey13 (2004-10-21 11:27:00) [4]2[12] msguns © (21.10.04 11:05)
ИМХО.
Чем богаче доступный инструменарий, тем (при правильном использовании) проще писать нормально работающие программы. А зацикленность на какой то конкретной технологии (а точнее наверное методологии) не есть однозначный гуд.
Повторюсь, все ИМХО.
ЗЫ: Знать как что работает, конечно желательно по любому.
2[7] Жук © (21.10.04 10:14)
>Я за него кликнул :-) Но не понял, зачем ?
Не понял на чем и зачем кликал? 8-)
msguns (2004-10-21 11:05:00) [5]>Johnmen © (21.10.04 10:36) [11]
>Вот здесь не совсем прав:
>>FIBPlus вообще почти все делает за кодера. Соответственно
>>избавляя его от необходимости что-то там читать и понимать
>т.к. большая функциональность этого вовсе не означает...
Конечно, с тобой, Женя, я спорить не собираюсь. А мнение такое сложилось после прочтения (и не единожды) книги Вострикова и Ковязина "Мир Интербэйс". Хотя сам я этой библиотекой не пользуюсь (придерживаюсь принципа, что надо обходиться тем, что имею, т.к. на все случаи жизни библиотек не напасешься, а работать приходится с разными вещами: в случае с БД это и интербэйс, и аксесс, и парадокс, и кое-чего еще)
>>1.Ну это еще не есть обязательно..
>В смысле?
В смысле что я могу использовать и одну и ту же транзакцию как для чтения, так и для модификации.
>>2.А всегда ли это нужно ? (Пример - справочник)
>Не понял. Ты имел в виду, что для справочников проще Table ? Тогда вполне возможно...
Table`ом не пользуюсь по нескольким причинам, некоторые из которых:
- необходимость ввода доп.индексов для переупорядочения
- неудобство подключения информации из других таблиц (Механизм LookUp на дух не переношу)
- тягать на клиента всю таблицу (что крайне нехорошо в случае с древовидными справочниками, где надо считывать за раз содержимое нескольких узлов, но не всего "леса"
- и т.д.
Johnmen (2004-10-21 10:36:00) [6]>msguns © (21.10.04 10:23) [10]
Вот здесь не совсем прав:
>FIBPlus вообще почти все делает за кодера. Соответственно
>избавляя его от необходимости что-то там читать и понимать
т.к. б ольшая функциональность этого вовсе не означает...
>1.Ну это еще не есть обязательно..
В смысле?
>2.А всегда ли это нужно ? (Пример - справочник)
Не понял. Ты имел в виду, что для справочников проще Table ? Тогда вполне возможно...
msguns (2004-10-21 10:23:00) [7]>Johnmen © (21.10.04 10:17) [8]
>>msguns © (21.10.04 10:06) [6]
>В некоторой степени ты прав...:)
А в какой неправ ?
>Основной и самый важный - поддержка раздельных тр-ий для чтения и записи.
1.Ну это еще не есть обязательно..
2.А всегда ли это нужно ? (Пример - справочник)
msguns (2004-10-21 10:19:00) [8]>Жук © (21.10.04 10:14) [7]
Дима, а я родился в день смерти ВВЛ. О чем также узнал в день его смерти :((
Сори за офтоп
Johnmen (2004-10-21 10:17:00) [9]>msguns © (21.10.04 10:06) [6]
В некоторой степени ты прав...:)
>Жук © (21.10.04 10:14) [7]
>Аргументы в студию, плз.
Основной и самый важный - поддержка раздельных тр-ий для чтения и записи.
Жук (2004-10-21 10:14:00) [10]
> Sergey13 © (21.10.04 09:41) [3]
> Правой кнопкой кликал?
Я за него кликнул :-) Но не понял, зачем ?
> Johnmen © (21.10.04 10:00) [5]
> Рекомендую остаться на IBDataSet. А ещё лучще перейти на
> pFIBDataSet.
Аргументы в студию, плз.
msguns (2004-10-21 10:06:00) [11]>Johnmen © (21.10.04 10:00) [5]
>Рекомендую остаться на IBDataSet. А ещё лучще перейти на pFIBDataSet.
Женя, этот класс для продвинутых, т.к. пользование им "без понятия" будет приводить к самым неожиданным проблемам. Уж тогда лучше тэйбл. FIBPlus вообще почти все делает за кодера. Соответственно избавляя его от необходимости что-то там читать и понимать
Johnmen (2004-10-21 10:00:00) [12]Рекомендую остаться на IBDataSet. А ещё лучще перейти на pFIBDataSet.
msguns (2004-10-21 09:50:00) [13]При работе в клиент-серверной среде надо четко различать операции чтения и модификации данных. Для первых существуют TIBQuery, для вторых - IBSQL (упрощенно). Пачаны, которые изначально следуют этой "разделяющей" технологии, просто не получают подобных проблем. Однако для тех, кто привык "стоять на таблице" с ногами, разработчики сделали TIBDataSet и даже TIBTable, однако суть общения с интербэйзом (и не только) от этого не меняется. Модифицирующие запросы надо контролировать ручками (для TIBDataSet). А вообще рекомендую перейти на "классическую" модель, т.к. тот же TIBDataSet переодически все равно придется переоткрывать и перепозиционировать.
Sergey13 (2004-10-21 09:41:00) [14]Правой кнопкой кликал?
Tchainik_Delphi (2004-10-20 18:09:00) [15]а чем их заполнять? типа:
Insert into table1 (field1,field2) values (string1,string2)?
Так?
Sergey13 (2004-10-20 18:03:00) [16]Заполнить свойства ModifySQL, InsertSQL, DeleteSQL. Правой кнопкой на компоненте.