| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > обновление БД |
| Автор: Yra 27.10.2006, 16:04 | ||
| Всем привет. дело такое : на форме у меня Query, UpdateSQL, и всякое другое. Сперва я редактирую некотурую запись. При нажатии на кнопу "Обновить" исполняется код :
и запись обновляеться. Но если в БД несколько одинаковых записей , то появляеться сообщение : Updates failed (обновление провалено). Потом я завершаю работу этого приложения, и сново его запускаю..... И.... о чудо!! все одинаковые записи (одну из которых я редактировал) обновленны. отсюда вопрос : Почему выдает ошибку? Как это исправить? Может кто посоветует иной подход к редекции записей (что бы из одинаковых редактировалась избранная)? |
| Автор: Rodman 27.10.2006, 16:07 | ||
Обычно
хватает... больше ничего ты не напутал??? |
| Автор: Romikgy 27.10.2006, 16:08 |
| а че ид никакого нет (уникального)? |
| Автор: Yra 27.10.2006, 16:10 |
| Rodman, просто в компоненте Query1-> CachedUpdates = true; поэтому , что бы изменения вступили в силу, первые 2 оператора используються. (ввод в БД буферезирован) Добавлено @ 16:13 Romikgy, нету....пробовал использовать поле Autoincrement , но возникают проблемы связанные с копированием записи. |
| Автор: Vyacheslav 27.10.2006, 16:16 |
| А самом генерить уникальный id слабо? Кстати Autoincrement обычно не используются |
| Автор: Yra 27.10.2006, 16:20 |
| Vyacheslav, еще не имею столько опыта.....и знаний. Т.Ч. будь добр расскажи по подробней , где я могу про генерацию id прочитать, или |
| Автор: Vyacheslav 27.10.2006, 18:42 | ||
| Ну например в коде можно генерить по времени или просто использовать GUID Обычно я использовал GUID Чтобы особо не задуматься на событие OnNewRecord вешаешь обработчик и у Вас при вставке новой записи поле ID всегда будет заполнено
Поле ID в этом случае строка, длиной 32. Microsoft вроде бы гарантирует уникальность сгенеренного значения и следовательно такой метод можно вполне применять и при многопользвательской работе |
| Автор: Yra 27.10.2006, 22:56 |
| Vyacheslav, спасибо за ответ. Но что такое GUID? когда это событие возникает ? (OnNewRecord) есть ли это событие в компоненте Query? это поле "ID" можно назвать скажем "No_zach" ? Очень прошу, порекомендуй мне на эту тему хорошую книгу... зарание спасибо за ответы. |
| Автор: Romikgy 28.10.2006, 12:53 |
| http://proklondike.com/database2.html |
| Автор: Yra 28.10.2006, 15:55 |
| Romikgy, пОнЯтО !!! спасибо за ссылку!!! |
| Автор: Yra 29.10.2006, 20:19 |
| Всем спасибо........разобрался |