| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > контролирование Базы даных |
| Автор: Gannibal 20.12.2005, 17:45 |
| допустим есть база данных на MySQL кто нибудь туда запишет, удалит, или исправит её, а при запуске програмы бы желательно узнать какие были произведены изминения в БД и выписать в лог файл? можете кто идеей подсказать? |
| Автор: Akina 20.12.2005, 18:32 |
| В общем случае никак. |
| Автор: Gannibal 20.12.2005, 18:35 | ||
а если не в общем случии? есть идеии как реализовать? Добавлено @ 18:38 а по дате?? если?? создавать лог фаил? кде будет записано изминения когда проицходили например.. потом сравнивать? .. главное скорость вобощето |
| Автор: Exception 20.12.2005, 18:42 |
| Хм.. Насколько я знаю, в SQL есть такие вещи, как триггеры. Поставь триггер на изменение данных в нужной таблице, который пишет об изменении в спецтаблицу. Но я в этом совершенно не уверен. Спроси в разделе по БД |
| Автор: Akina 20.12.2005, 22:13 | ||
в MySQL с этим напряженка. |
| Автор: Gannibal 21.12.2005, 02:49 |
| так остаёться сделать тогда програму которои я буду записывать данные в БД а там ои ети новые запишуться в другое место куда нибудь .. и всё наверное так лучше будет я думаю или нет? просто БД от 3 до 5 гигабайт вот проблема с временим хотелось бы чтобы побыстрее работало всётаки |
| Автор: Akina 21.12.2005, 10:13 |
| То о чем ты говоришь называется журнал. Или лог транзакций - в терминах MS SQL. Весьма, кстати, разумная вещь. |
| Автор: Gannibal 21.12.2005, 20:49 |
| можно поподробнее о МС СКВЛ? |
| Автор: Exception 21.12.2005, 21:32 |
| Что именно о нем ты хочешь узнать? |
| Автор: Gannibal 22.12.2005, 03:28 |
| как работать с МС СКВЛ через ВБ6, и как с ним вообще работаеться, какие возможности есть.. и так далее чем больше инфы тем лучше |
| Автор: Exception 22.12.2005, 09:52 |
| Смотря какой. Вообще с MSSQL лучше и проще работать из дотнета. Особенно с 2005 - там даже хранимые процедуры можно писать на C#/VB.NET... |
| Автор: Voldemar2004 22.12.2005, 19:17 | ||||||||||
поле1: строка1....до n=20 .... поле10:строка1....до n=20
потом создадим второй лог-файл, но в него будем заносить только ту информацию, для которой произошли изменения - какие-то ячейки юзер поправил/удалил
P.S. Чисто моя идея. |
| Автор: Akina 22.12.2005, 23:10 |
| Voldemar2004 Боюсь, от такого лога сервер быстро станет трупом по причине исчерпания пространства... M.E.G.U.S Когда мне пришлось самостоятельно организовывать журнал работы (это лет 10 назад) - я пошел путем добавления в базу 3 полей. Т.е. была структура типа ID и данные, добавились NextID, DateTime и Operator. Изначально эти поля были пусты. Но любые исправления и удаления всегда приводили к копированию измененного состояния записи в новую запись, а в старой просто ставилось в доп. полях, когда, кем внесены изменения и какой ID следующего состояния записи (-1 означало что запись удалена). Рабочие записи выбирались дополнительным условием отбора NextID=0, а чтобы база сильно гне пухла, периодически записи с NextID<>0 переносились в базу архива (и только при этом физически удалялись из рабочей базы). Посколько % корректировки составлял порядка 0.1% в день - схема была весьма жизнеспособна. Правда, было одно маленькое НО - с этой базой невозможно было работать минуя мою математику. |
| Автор: Voldemar2004 24.12.2005, 12:45 | ||
Хотя, имхо, для работы с такой БД размером в 3 Гб даже самый скоростной метод отслеживания изменений будет еле ползать. |