|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.06.2010, 16:22 | #1 |
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Дублирование записей при Update
При выполнении запроса Update записи в БД дублируются. Причем не каждый раз, а как звезды на небе станут. может и продублировать, а может и нет.
Код:
|
23.06.2010, 16:41 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну а кто знает что делает fmMain.db_SQL?
И кстати, с чего ты взял что этот код выполняется не дважды? Как и где ты его вызываешь?
I'm learning to live...
|
23.06.2010, 17:04 | #3 |
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Вызываю по нажатию на кнопке, это раз
Код:
|
23.06.2010, 18:29 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
т.е. вы хотите сказать, что после Update clients set ... where id = ВашID в таблице clients появляются ДВЕ записи с одним ID ?!! но это же невозможно! Что за СУБД, через что подключаетесь? В дублировании удостоверялись 100% ?! (могут неверные запросы (неверно связанные из нескольких таблиц) показывать мнимое дублирование, которого, разумеется, в таблице нет! |
|
23.06.2010, 18:38 | #5 | ||||
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Цитата:
Цитата:
Цитата:
Цитата:
Глюк проявился только на этапе эксплуатации. На тестовой базе все досихпор работает как часы, а вот в рабочей базе нет. Причем глюк странный появляется рандомно. Но при добавлении одной и тойже записи (абсолютно тойже, кроме ид) и ее редактировании появляется обязательно. Может связанно с самими данными, хотя редактировалась дата.... |
||||
23.06.2010, 18:42 | #6 |
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Вот структура базы на всякий случай
clients +----------------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | YES | | NULL | | | dogovor | varchar(20) | YES | | NULL | | | card | varchar(20) | YES | | NULL | | | fio | varchar(50) | YES | | NULL | | | pakid | int(10) unsigned | YES | | NULL | | | regdata | date | YES | | NULL | | | adr | varchar(50) | YES | | NULL | | | fon | varchar(50) | YES | | NULL | | | firmid | int(10) unsigned | YES | | NULL | | | hispaydatafrom | date | YES | | NULL | | | hispaydatato | date | YES | | NULL | | | ourpaydatato | date | YES | | NULL | | | ourpaydatafrom | date | YES | | NULL | | | coment | varchar(255) | YES | | NULL | | +----------------+------------------+------+-----+---------+-------+ pakets +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | YES | | NULL | | | name | varchar(60) | YES | | NULL | | | price | float | YES | | NULL | | +-------+------------------+------+-----+---------+-------+ firm +-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | id | int(10) unsigned | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | adrr | varchar(40) | YES | | NULL | | | phone | varchar(20) | YES | | NULL | | +-------+------------------+------+-----+---------+-------+ history +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | clid | int(11) | YES | | NULL | | | date | date | YES | | NULL | | | value | varchar(200) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ |
23.06.2010, 18:49 | #7 |
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Код:
Последний раз редактировалось Error_kpi; 23.06.2010 в 18:56. |
23.06.2010, 21:10 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
абсолютно не могу ничего сказать. Ибо баг где-то глубоко.. я бы грешил на компоненты доступа..
сразу замечания. 1) проверьте на наличие триггеров! Они очень сильно могут подпортить Вам жизнь. 2) Если добавить запись. Закрыть приложение (и по возможности остановить сервер). Потом запустить. Обязательно убедиться, что запись с нужным ID одна одинёшенька и потом мучить её Update - сначала ручками через выполнение запросов. А потом мучить Update через программу - удасться повторить дублирование?! 3) Почему у Вас ключевые поля NULL ?! Это как?! Только Уникальные и NOT NULL Это же основа любой реляционной БД |
24.06.2010, 12:19 | #9 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
да будет вам - компоненты доступа...
ТС нахватался по верхам кода и слепил нечто, что теперь доставляет кучу хлопот структуру БД нужно разрабатывать независимо от кода проги и проверять работоспособность созданной структуры БД нужно прямыми вставками/апдейтами/удалениями в базу, а дальше навешивать для полноценной работы процедуры, открывающие некий функционал для работы с бд из прог ну читать, читать, читать правильные книжки - начать с "нормальных форм" |
24.06.2010, 13:56 | #10 | |||
Пользователь
Регистрация: 23.06.2010
Сообщений: 17
|
Из Command Line БД работает как часы.
В тестовом варианте базы тоже. Цитата:
Цитата:
Цитата:
Кто-то что по делу может посоветовать? Последний раз редактировалось Error_kpi; 24.06.2010 в 14:01. |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дублирование при печати | pavel.ignatenko | Microsoft Office Excel | 1 | 03.03.2010 23:39 |
Ошибка при редактировании поля (в Update) | Droid | БД в Delphi | 4 | 12.07.2009 19:51 |
Автоматический Update при открытии файла | ruavia3 | Microsoft Office Excel | 3 | 16.03.2009 11:31 |
Update - Обновление всех записей | Veroonya | SQL, базы данных | 4 | 15.12.2008 13:42 |
update или исправление записей в таблицах. | Roof | БД в Delphi | 4 | 15.08.2008 15:35 |