Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Служба Рассылок Subscribe.Ru
Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 19.02.02 09:04

Новые компоненты   |x|
  • APR Dialogs 1.3.3 (19.02.02 03:32)
    Рад предложить Вашему вниманию обновленную версию APR Dialogs (версия
    1.3.3).
    Данные диалоговые компоненты, являясь развитием стандартных диалоговых компонент от Borland, обеспечивают многие уникальные возможности:
    - использование Delphi forms в качестве расширений окон стандартных диалогов;
    - прекрасная поддержка design-time: продпросмотр и т.п.;
    - широкие возможности по настройке Open/Save-диалогов: настраиваемый PlacesBar, стили File list view, custom toolbar, возможность скрыть папки из списка файлов и запретить пользователю менять текущий каталог, удалять файлы
    и многое другое.
    Автор: Alexander Petrov
    -= · VCL · =-

  • Get PC Resolution v.1.0 (2kb) (18.02.02 16:11)
    Данный компонент позволяет определить разрешение экрана.

    С исходными текстами
    Компонента из раздела: System: Other Hardware
    Источник: www.torry.net   Автор: Simone Di Cicco
    -= · VCL · Samples · =- [Перевел: Сергей Касаткин]

  • FindComp (49kb) (18.02.02 16:05)
    Дает список компьютеров и рабочих групп в локальной сети.

    Новая версия компоненты
    С исходными текстами
    Компонента из раздела: LAN: Networks
    Источник: www.torry.net   Автор: Dimka Maslov http://dims.gpsm.ru
    -= · VCL · Samples · =- [Перевел: Сергей Касаткин]

  • TToneGen v.2.1 (461kb) (18.02.02 16:03)
    Компонент предназначен для создания простых звуковых эффектов без необходимости использования внешних аудио устройств и аудиофайлов.

    TToneGen предоставляет:

    Выбор из пяти форм сигнала.
    Диапазон частот от 20Гц до 20кГц.
    Длительность звука от 10мс до 30 сек.
    Раздельная регулировка громкости левого и правого канала.

    Новая версия компоненты
    С исходными текстами
    Компонента из раздела: Sound Effects: Other
    Источник: www.torry.net   Автор: Alan Warriner http://www.alan-warriner.co.uk/soft.htm
    -= · VCL · Samples · =- [Перевел: Сергей Касаткин]

  • Virtual Treeview (2.2Mb) (18.02.02 15:58)
    Virtual Treeview - компонент отображения информациии в виде дерева. Имеет след. возможности:
    - чрезвычайно высокая скорость доступа
    - малые запросы к памяти
    - высокая екмкость (1.000.000 и более узлов)
    - новая концепция сериализации
    - поддерка Unicode, OLE Drag'n drop и буфера обмена с OLE-объектами
    - высокая настраиваемость
    - множественный выбор, несколько колонок
    - полупрозрачные картинки при перетаскивании
    и многое другое
    С исходными текстами
    Screenshot: http://www.delphipages.com/uploads/screenshots/VTMultiLang.png
    Источник: www.delphipages.com   Автор: Mike Lischke http://www.lischke-online.de
    -= · VCL · Samples · =- [Перевел: Сергей Касаткин]

  • Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Кое-что из нашей кладовки   |x|
Лучшее из нашего FAQ   |x|
Каскадные Update's в таблицах InterBase
Если Update не затpагивает ключевых(ссылочных) полей - то ничего стpашного и военного нет.
Дpугое дело - если затpагивает. Тогда надобно пpоявить немного фантазии.
Пеpвое, что пpиходит в голову - создать в pодительской таблице вpеменную запись(с заpанее оговоpенным ID) и пеpенести все ссылки из Child-таблицы на эту запись(до обновления). А после обновления - занести обpатно.

CREATE TABLE Table1
(
ID INTEGER NOT NULL PRIMARY KEY,
Name VARCHAR(25)
);
CREATE TABLE Table2
(
ID INTEGER NOT NULL PRIMARY KEY,
Table1ID INTEGER NOT NULL,
Name VARCHAR(20),
constraint fkTable2_Table1 FOREIGN KEY Table1ID REFERENCES Table1(ID)
);
SET TERM ^ ;
CREATE TRIGGER trbuTable1_BackUp
before update
as
BEGIN
if (OLD.ID <> NEW.ID) then
update Table2
SET Table1ID = 0
where Table1ID = OLD.ID;
END
^
CREATE TRIGGER trauTable1_Restore
after update
AS
BEGIN
if (OLD.ID <> NEW.ID) then
update Table2
SET Table1ID = NEW.ID
where Table1ID = 0;
END
^
commit ^

....
Естественно, если возможен одновpеменный подобный Update в pазных одновpеменных тpанзакциях, то необходимо пpименить более изощpенный способ.
Hо!.. IMHO, надо поступать немного по дpугому, что ОЧЧЕЬ упpостит опеpации в БД. адо пpосто составить пpоцедуpу, типа:

CREATE PROCEDURE eprTable1_UpdateWithNewID
(
OLDID INTEGER,
NEWID INTEGER,
Name VARCHAR (25)
)
as
BEGIN
insert into Table1
(ID, Name)
values
(:NEWID, :Name);
update Table2
SET Table1ID = :NEWID
where Table1ID = :OLDID;
delete from Table1
where ID = :OLDID;
END
^



Комментарий от Max Rezanov [max@valley.ttn.ru]
На ответ натолкнул меня PowerDesigner 7
Если почитать IB документацию то можно выловить следующую возможность по констраинтам, искать надо в
ALTER TABLE name {ADD colname < datatype> [NOT NULL]
| DROP colname | ADD CONSTRAINT constraintname tableconstraint
| DROP CONSTRAIN! T constraintname};
>
> = [CONSTRAINT constraint]
> [ ...]
> = {UNIQUE | PRIMARY KEY
> | CHECK ( )
> | REFERENCES other_table [( other_col [, other_col -])]
> [ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
> [ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
> }

Список возможностей
> Action specified Effect on foreign key
> NO ACTION
> [Default] The foreign key does not change (can cause the primary key update or delete to fail due to referential integrity checks)
> CASCADE
> The corresponding foreign key is updated or deleted as appropriate to the new value of the primary key
> SET DEFAULT
> Every column of the corresponding foreign key is set to its default value; fails if the default value of the foreign key is not found in the primary key
> SET NULL
> Every column of the corresponding foreign key is set to NULL

Говоря проще нам важна следующая возможность
alter table ENTT_2
add constraint FK_ENTT_2_RLSH_1_ENTT_1 foreign key (ATTR_1)
references ENTT_1
on update cascade
on delete cascade;
Полный SQL код для проверки ниже, При сменен PK на таблице ENTT_1
FK в таблице ENTT_2 меняется автоматом, про удаление я не говорю вобще Ж:))


create database "d:\SQLBASE\T1.GDB"
user "sysdba"
password "masterkey"
page_size = 4096
default character set WIN1251;

/*==============================================================*/
/* Table : ENTT_1 */
/*==============================================================*/
create table ENTT_1 (
ATTR_1 VARCHAR(10) not null,
ATTR_2 VARCHAR(10),
constraint PK_ENTT_1 primary key (ATTR_1)
);

/*==============================================================*/
/* Table : ENTT_2 */
/*===================================! ===========================*/
create table ENTT_2 (
ATTR_4 VARCHAR(10) not null,
ATTR_1 VARCHAR(10) not null,
ATTR_5 VARCHAR(10),
constraint PK_ENTT_2 primary key (ATTR_4)
);

alter table ENTT_2
add constraint FK_ENTT_2_RLSH_1_ENTT_1 foreign key (ATTR_1)
references ENTT_1
on update cascade
on delete cascade;


»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Пространство имён оболочки Windows
В операционных системах компании Microsoft с 1995 года используется новая оболочка, построенная на основе компонентной объектной модели.
Одним из нововведений оболочки операционной системы стало понятие пространства имён оболочки. Пространство имён оболочки являет собой иерархически упорядоченный мир объектов, известных операционной системе, с их свойствами и предоставляемыми действиями.
Оно во многом сходно со структурой файловой системы, но включает в себя не только файлы и каталоги. Такие понятия файловой системы, как имя файла и путь, заменены более универсальными.
Новинки книжного рынка   |x|
Delphi 5 для профессионалов
Эта книга поможет вам овладеть программированием в Delphi, включая язык Object Pascal, компоненты Delphi (как работу с существующими компонентами, так и разработку ваших собственных), поддержку баз данных и приложений клиент/сервер, базовые элементы программирования в среде Windows и разработку COM-приложений, а также Web-программирование. Для чтения этой книги нет необходимости в глубоких знаниях какой-либо из этих тем, но что вам действительно понадобится — это основы программирования на Паскале.
Автор: М. Кэнту
Другие сайты о DELPHI   |x|
Кладезь знаний человеческих
На нашем сайте Вы найдете статьи на любую тему связанную с копмпьютером! Почти каждодневное обновление, отменные статьи, форум! Заходите, мы будем рады Вам!

» Оценка сайта: 2
Опрос населения :)
Какой раздел сайта вам больше нравится?
»»» FAQ
»»» Статьи
»»» Новости мира компонент
»»» Форумы
»»» Компоненты
»»» База по другим сайтам
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Туча далеко.
А пока над головой
Облака легки.

Афоризмы
Женщина, никого не любящая, ни в ком не может вызвать ревности...

Фраза дня
Стояла тихая Варфоломеевская ночь.

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Айдахо (США) запрещено рыбачить, сидя на верблюде.
В Балтиморе (США) не разрешается приходить в театр со львами.

И на закуску коротенький анекдот
Мы с дpyгом поставили Windows'2000... И тоpмознyли кpyтейший PentiumIII-600.

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=28


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное