Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 12:33   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
прочитать значение у DM.ADOQ_PACid_pacienta.DataSet.RecN o если DM.ADOQ_PAC в этот момент закрыт?
А я и не говорил об этом.
Прочитать это можно раньше до закрытия. И вообще стратегия выбранная автором не замая удачная.

Естесственно что на закрытом наборе нельзя узнать его свойство, но я говорил о принципе. Вот Evgeniy26 тее показал.

Цитата:
у меня все работает но че то очень криво
Почему ты так думаешь?
Код:
а как тогда редактировать ?
Командой SQL - UPDATE )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2009, 12:44   #22
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А я и не говорил об этом.
Прочитать это можно раньше до закрытия. И вообще стратегия выбранная автором не замая удачная.

Естесственно что на закрытом наборе нельзя узнать его свойство, но я говорил о принципе. Вот Evgeniy26 тее показал.


Почему ты так думаешь?
Код:
а как тогда редактировать ?
Командой SQL - UPDATE )
UPDATE это же обновить, например как будет редактировать, открываем форуму далее во все эдиты вводится та иформация которая в ячейках далее мы их редактируем и заносим... я себе не очень представляю это ыыы

он какой то не коректный мне кажется ( как нибудь можно программно добавить строку пустую для вноса информации кроме как сослаться на кнопку дб навигатора ?
GL_F.DBNavigator1.BtnClick(nbInsert );
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 13:34   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
UPDATE это же обновить
Это не просто обновить, это изменить данные т.е. редактировать:

Допустим есть таблица с ключевым полем ID тогда в поле q на запись с ID=1 будет вписана единичка. Это выполняется тоже через ExecSQL
Код:
UPDATE [Таблица1] SET q=1 where ID=1
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2009, 16:24   #24
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Безымянный.jpg - при удаление выдало ошибку ( у меня таблица пациента свяана со многими таблицами в MySQL Front и там стоят ограницения между ними... почему не удаляется? в чем касяк ?
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 16:37   #25
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Droid Посмотреть сообщение
Вложение 13318 - при удаление выдало ошибку ( у меня таблица пациента свяана со многими таблицами в MySQL Front и там стоят ограницения между ними... почему не удаляется? в чем касяк ?
чтобы тебе удалить эту запись тебе нужно удалить все ссылки на неё.

К примеру если у тебя есть справочник пациентов, то ты должен со всех таблиц, где встречается этот пациент сначала удалить этого пациента, а потом можно будет удалить его из справочника. Можно это сделать программно, если в этом есть необходимость.
SlavaSH вне форума Ответить с цитированием
Старый 30.06.2009, 16:41   #26
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

ну у допустим в 5 справочниках, прикреплен ID_pacienta к ним.Че надо сделать ? Например у меня есть "наличие инвалидности" id_invslidnosti и там же есть FK id_pacienta, в таблице наличие инвалидности, наложено ограничение на таблицу пациентов ...
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 16:46   #27
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Безымянный.jpg - тут бд
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.06.2009, 17:08   #28
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Droid Посмотреть сообщение
ну у допустим в 5 справочниках, прикреплен ID_pacienta к ним.Че надо сделать ? Например у меня есть "наличие инвалидности" id_invslidnosti и там же есть FK id_pacienta, в таблице наличие инвалидности, наложено ограничение на таблицу пациентов ...
в общем должно быть так:

сначала удаляешь со всех таблиц, где встречается поле, связанное с id_pacienta все записи. Я не знаю сколько там у тебя таблиц, но примерно так:

Код:
DM.ADOCommand.CommandText:='DELETE FROM Table1 WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;

DM.ADOCommand.CommandText:='DELETE FROM Table2 WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;

DM.ADOCommand.CommandText:='DELETE FROM Table3 WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;
и последним действием удалишь эту запись со справочника:
Код:
DM.ADOCommand.CommandText:='DELETE FROM pacient WHERE id_pacienta=:D';
DM.ADOCommand.Parameters.ParamByName('D').Value:=DM.ADOQ_PACid_pacienta.Value;
DM.ADOCommand.Execute;

Если на первые таблицы тоже есть какие-то ссылки, то сначала нужно будет удалить все данные из этих таблиц. В общем все очень сложно!

А зачем тебе могло понадобиться удалять пациента, о котором содержится столько сведений???
SlavaSH вне форума Ответить с цитированием
Старый 30.06.2009, 17:41   #29
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от SlavaSH Посмотреть сообщение

Если на первые таблицы тоже есть какие-то ссылки, то сначала нужно будет удалить все данные из этих таблиц. В общем все очень сложно!
Что такое первые таблицы ? вот по моей физической модели, я спрева удаляю id_pacienta, из таблиц которые присоединены к таблице PACIENT ?

Цитата:
Сообщение от SlavaSH Посмотреть сообщение
А зачем тебе могло понадобиться удалять пациента, о котором содержится столько сведений???
А вдруг он умер или перехал в др город...
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 01.07.2009, 09:11   #30
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Droid Посмотреть сообщение
Что такое первые таблицы ? вот по моей физической модели, я спрева удаляю id_pacienta, из таблиц которые присоединены к таблице PACIENT ?
ну я не знаю твою структуру, не разбирался в ней....

вот, например, у меня есть такая база, в которой такая структура:

3 таблицы связано таким образом

счета связаны с таблицей товаров по номеру товара
таблица товаров связана с таблицей стран по номеру страны.

Получается, чтобы мне удалить страну из справочника надо удалить все товары этой страны, а по этим товарам могут быть выписаны счета, поэтому нужно удалить все счета на эти товары.
Может быть еще сложнее структура. Если у тебя есть, что-то подобное, то тебе сложно будет организовать удаление программно.
Но если у тебя база данных Access, то там вообще все элементарно. Там в схеме данных есть очень полезная фишка:
в связях можно настроить каскадное удаление связанных записей. Тогда вообще проблем с удалением не возникнет!




Цитата:
Сообщение от Droid Посмотреть сообщение
А вдруг он умер или перехал в др город...
Ну и оставь его в покое. Даже если больница (или что там у тебя) больше не обслуживает клиента, записи о проделанной работе то не должны удаляться.
Ты по сути удаляешь всю историю этого пациента, что не совсем разумно.

Если тебя напрягает, что в справочнике постоянно висит пациент, которого уже и в помине нет, то можно добавить поле логического типа, в котором ты и будешь ставить отметку нужен этот клиент в справочнике или нет. А в таблице отображай записи, у которых в этом поле значение стоит false.
SlavaSH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ РЕШИТЬ ПРОБЛЕМУ !!!!!!!!!!!! ЛиЛу Помощь студентам 5 29.12.2008 15:36
Помогите решить проблему nismo Microsoft Office Excel 7 12.09.2008 08:59
помогите решить проблему 1234 Общие вопросы Delphi 2 04.07.2008 11:52
помогите решить проблему ... alexey7 Microsoft Office Excel 2 16.10.2007 13:25