Расскажу в кратце что надо для добавления/редактирования/удаления записей в бд -)
Здал еще в понедельниу на 5 -)
ладно начнем:
1. как обычно создаем приложение с 1 формой. Располагаем на ней DBGrid вкладка DataControls.
2. создаем DataModule (File -> New -> DataModule)
3. располагаем на нем компоненты вкладки InterBase: IBDatabase, IBTransaction. Для каждой таблицы бд добавляем компоненты IBDataSet, IBUpdateSQL, а также компоненты DataSource с вкладки DataControls(для каждой таблицы по 1). Устанавливаем свойства компонентов:
IBDatabase:
DataBasename - имя файла бд, созданного в IBConsole
IBDataSet:
Transaction - имя компонента IBTransaction
Database - имя компонента IBDatabase
UpdateObject - имя компонента IBUpdateSQL, связанного с этой же таблицей.
GeneratorField - имя генератора для этой таблицы для автоинкрементного поля, increment by 1, apply event - on new record.
IBTransaction:
DefaultDatabase - имя компонента IBDatabase.
DataSource:
DataSet - имя компонента IBDataSet связанного с ним.
4. для каждого объекта IBDataSet вызываем контекстное меню и выбираем EditSQL.
5. пишем тут (SELECT * from имя_таблицы)в каждом объекте IBDataSet для его таблицы. OK
6. выбираем из конекстного меню каждого IBDataSet DatabaseEditor выбираем KeyFields(ключевое поле - в основном это поле с кодом) и UpdateFields(поля для обновления - в основном все поля).
7 жмем button Generate SQL
8 пункты 7,8 проделываем с каждым соответсвующим компонентом IBUpdateSQL
9. теперь можно добавлять/удалять/редактировать записи, используя компонент IBDataSet для каждой таблицы также как использовали Table на практике по бд на 2ом курсе(методы Insert,Edit после которых присваивать полям значения с помощью FirldByName('имя поял'), Delete - для удаления текущей записи, а также методы Post, Cancel для принятия и отмены изменений)
Пособие по убд за февраль
Сообщений 1 страница 10 из 10
Поделиться12007-02-28 20:41:09
Поделиться22007-03-01 18:19:45
Большущий респект!! Прямо пример для подражания! Особенно понравилось про генераторы, я этого не знал и как раз думал как сделать. Только объясните мне зачем нужен компонент IBUpdateSQL?
Поделиться32007-03-01 21:17:18
TIBUpdateSql. Главная задача этого компонента – обеспечить модификацию набора данных, доступных только для чтения. -) Без этого компонента будет возникать ошибка. Также ошибка будет возникать, если не выполнить пункты 7,8 для него -) Точно не могу сказать как error называется. Не помню -)
Отредактировано Antoxa (2007-03-01 21:34:06)
Поделиться42007-03-01 21:40:38
Antoxa, почему когда я нажимаю GeneratorField он мне говорит Empty SQL statement?
Поделиться52007-03-01 21:51:25
Добавь генераторы в IBConsole для каждой таблицы, где есть автоинкрементные поля, или проверь пункт 5, 2ым щелчком по компоненту IBDataSet. Если все сделано правильно должны появиться поля связанной с этим компонентом таблицы. -)
Поделиться62007-03-07 19:42:27
А как работает GeneratorField? просто у меня не пашет. Когда он его генерирует? там можно выбрать опцию - на новую запись, и по идее, при переходе в режим редактирования, данное поле должно заполнятся значением этого генератора, чего у меня не просходит. Может еще что-то надо сделать?
Поделиться72007-03-19 20:48:13
Генератор можно не только задавать в свойствах компонента TIBQuery но и вызывать его в SQL запросах.
Пример: INSERT INTO ляляля (ID_ляляля,ляляля) VALUES (GEN_ID(Название генератора (который ты создал в InterBase),шаг (ставь еденицу)) т.е. должно получится (GEN_ID(ляляля,1),ляляля)
зы через свойства у меня тоже не пашет.
зыы Если кто знает, расскажите как реализовать фильтрацию. Привидите просто пример запроса. Ато что-то не догоню никак.
Отредактировано FallenAngel (2007-03-19 20:50:12)
Поделиться82007-03-20 15:48:24
Select *
From ляля
Where ляля
если с группировкой то так
Select *
From ляля
Group by ляля
having(вроде) ляля
все функция типа like и т.д. теже
Поделиться92007-03-21 21:46:08
Пример супер базы:
begin
лялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллял
ялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляля
ллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяля
ляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялял
ляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляляллялял
лялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляляллялялляляляллялялляляляллялялялляляля
лляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляляллялялляляляллялялл
ялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляля
лляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляляллялялляляляллялялляляляллялялял
лялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялял
ляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялял
яллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялл
яляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляяляляллялялляляллялялялляляллялялялляляляллялялялляялялялляляллялялл
яляляллялял
end
Поделиться102007-03-21 23:43:12
Да норм )))) 4 звенная наверно)))))))))))????????????????